sam deploy --guided disregards region input
See original GitHub issueDescription:
after execution of sam deploy --guided
it asked me about the region to deploy lambda function to. I entered “us-east-2”. A few steps later it printed out a huge python stack trace with message “You must specify region”.
It affects customer experience as the tool disregards information entered by a user - which does not look holistic.
Steps to reproduce:
- Run
aws configure
. Enter credentials. Do not put region information. - Create a sample python lambda function from “Hello word” template using
sam init
- Try to deploy it with
sam deploy --guided
. It will ask for a region. Enter “us-east-2” - Follow further on-screen instructions
Observed result:
% sam deploy --guided
Configuring SAM deploy
======================
Looking for config file [samconfig.toml] : Not found
Setting default arguments for 'sam deploy'
=========================================
Stack Name [sam-app]:
AWS Region [us-east-1]: us-east-2
#Shows you resources changes to be deployed and require a 'Y' to initiate deploy
Confirm changes before deploy [y/N]: y
#SAM needs permission to be able to create roles to connect to the resources in your template
Allow SAM CLI IAM role creation [Y/n]: y
HelloWorldFunction may not have authorization defined, Is this okay? [y/N]: y
Save arguments to configuration file [Y/n]: y
SAM configuration file [samconfig.toml]:
SAM configuration environment [default]:
Looking for resources needed for deployment: Not found.
Creating the required resources...
Successfully created!
Managed S3 bucket: aws-sam-cli-managed-default-samclisourcebucket-1lljvk7s3ie0m
A different default S3 bucket can be set in samconfig.toml
Saved arguments to config file
Running 'sam deploy' for future deployments will use the parameters saved above.
The above parameters can be changed by modifying samconfig.toml
Learn more about samconfig.toml syntax at
https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/serverless-sam-cli-config.html
Traceback (most recent call last):
File "/usr/local/bin/sam", line 33, in <module>
sys.exit(load_entry_point('aws-sam-cli==1.12.0', 'console_scripts', 'sam')())
File "/usr/local/Cellar/aws-sam-cli/1.12.0/libexec/lib/python3.8/site-packages/click/core.py", line 829, in __call__
return self.main(*args, **kwargs)
File "/usr/local/Cellar/aws-sam-cli/1.12.0/libexec/lib/python3.8/site-packages/click/core.py", line 782, in main
rv = self.invoke(ctx)
File "/usr/local/Cellar/aws-sam-cli/1.12.0/libexec/lib/python3.8/site-packages/click/core.py", line 1259, in invoke
return _process_result(sub_ctx.command.invoke(sub_ctx))
File "/usr/local/Cellar/aws-sam-cli/1.12.0/libexec/lib/python3.8/site-packages/click/core.py", line 1066, in invoke
return ctx.invoke(self.callback, **ctx.params)
File "/usr/local/Cellar/aws-sam-cli/1.12.0/libexec/lib/python3.8/site-packages/click/core.py", line 610, in invoke
return callback(*args, **kwargs)
File "/usr/local/Cellar/aws-sam-cli/1.12.0/libexec/lib/python3.8/site-packages/click/decorators.py", line 73, in new_func
return ctx.invoke(f, obj, *args, **kwargs)
File "/usr/local/Cellar/aws-sam-cli/1.12.0/libexec/lib/python3.8/site-packages/click/core.py", line 610, in invoke
return callback(*args, **kwargs)
File "/usr/local/Cellar/aws-sam-cli/1.12.0/libexec/lib/python3.8/site-packages/samcli/lib/telemetry/metrics.py", line 148, in wrapped
raise exception # pylint: disable=raising-bad-type
File "/usr/local/Cellar/aws-sam-cli/1.12.0/libexec/lib/python3.8/site-packages/samcli/lib/telemetry/metrics.py", line 114, in wrapped
return_value = func(*args, **kwargs)
File "/usr/local/Cellar/aws-sam-cli/1.12.0/libexec/lib/python3.8/site-packages/samcli/commands/deploy/command.py", line 178, in cli
do_cli(
File "/usr/local/Cellar/aws-sam-cli/1.12.0/libexec/lib/python3.8/site-packages/samcli/commands/deploy/command.py", line 280, in do_cli
package_context.run()
File "/usr/local/Cellar/aws-sam-cli/1.12.0/libexec/lib/python3.8/site-packages/samcli/commands/package/package_context.py", line 102, in run
code_signer_client = boto3.client("signer")
File "/usr/local/Cellar/aws-sam-cli/1.12.0/libexec/lib/python3.8/site-packages/boto3/__init__.py", line 91, in client
return _get_default_session().client(*args, **kwargs)
File "/usr/local/Cellar/aws-sam-cli/1.12.0/libexec/lib/python3.8/site-packages/boto3/session.py", line 258, in client
return self._session.create_client(
File "/usr/local/Cellar/aws-sam-cli/1.12.0/libexec/lib/python3.8/site-packages/botocore/session.py", line 834, in create_client
client = client_creator.create_client(
File "/usr/local/Cellar/aws-sam-cli/1.12.0/libexec/lib/python3.8/site-packages/botocore/client.py", line 83, in create_client
client_args = self._get_client_args(
File "/usr/local/Cellar/aws-sam-cli/1.12.0/libexec/lib/python3.8/site-packages/botocore/client.py", line 306, in _get_client_args
return args_creator.get_client_args(
File "/usr/local/Cellar/aws-sam-cli/1.12.0/libexec/lib/python3.8/site-packages/botocore/args.py", line 71, in get_client_args
final_args = self.compute_client_args(
File "/usr/local/Cellar/aws-sam-cli/1.12.0/libexec/lib/python3.8/site-packages/botocore/args.py", line 147, in compute_client_args
endpoint_config = self._compute_endpoint_config(
File "/usr/local/Cellar/aws-sam-cli/1.12.0/libexec/lib/python3.8/site-packages/botocore/args.py", line 218, in _compute_endpoint_config
return self._resolve_endpoint(**resolve_endpoint_kwargs)
File "/usr/local/Cellar/aws-sam-cli/1.12.0/libexec/lib/python3.8/site-packages/botocore/args.py", line 300, in _resolve_endpoint
return endpoint_bridge.resolve(
File "/usr/local/Cellar/aws-sam-cli/1.12.0/libexec/lib/python3.8/site-packages/botocore/client.py", line 381, in resolve
resolved = self.endpoint_resolver.construct_endpoint(
File "/usr/local/Cellar/aws-sam-cli/1.12.0/libexec/lib/python3.8/site-packages/botocore/regions.py", line 133, in construct_endpoint
result = self._endpoint_for_partition(
File "/usr/local/Cellar/aws-sam-cli/1.12.0/libexec/lib/python3.8/site-packages/botocore/regions.py", line 148, in _endpoint_for_partition
raise NoRegionError()
botocore.exceptions.NoRegionError: You must specify a region.
Deployment fails
Expected result:
Application deployed successfully
Additional environment details (Ex: Windows, Mac, Amazon Linux etc)
- OS: macOS
sam --version
: SAM CLI, version 1.12.0
Add --debug flag to command you are running
% sam deploy --guided --debug
2020-12-02 11:48:34,813 | Telemetry endpoint configured to be https://aws-serverless-tools-telemetry.us-west-2.amazonaws.com/metrics
Configuring SAM deploy
======================
Looking for config file [samconfig.toml] : Not found
Setting default arguments for 'sam deploy'
=========================================
Stack Name [sam-app]: sam-app-2
AWS Region [us-east-1]: us-east-2
#Shows you resources changes to be deployed and require a 'Y' to initiate deploy
Confirm changes before deploy [y/N]: y
#SAM needs permission to be able to create roles to connect to the resources in your template
Allow SAM CLI IAM role creation [Y/n]: y
2020-12-02 11:48:57,575 | No Parameters detected in the template
2020-12-02 11:48:57,602 | 2 resources found in the template
2020-12-02 11:48:57,602 | Found Serverless function with name='HelloWorldFunction' and CodeUri='hello_world/'
2020-12-02 11:48:57,602 | Detected Inline Swagger definition
2020-12-02 11:48:57,602 | Auth checks done on swagger are not exhaustive!
HelloWorldFunction may not have authorization defined, Is this okay? [y/N]: y
2020-12-02 11:49:04,147 | No Parameters detected in the template
2020-12-02 11:49:04,171 | 2 resources found in the template
2020-12-02 11:49:04,171 | Found Serverless function with name='HelloWorldFunction' and CodeUri='hello_world/'
2020-12-02 11:49:04,171 | No function or layer definition found with code sign config, skipping
Save arguments to configuration file [Y/n]: y
SAM configuration file [samconfig.toml]:
SAM configuration environment [default]:
Looking for resources needed for deployment: Found!
Managed S3 bucket: aws-sam-cli-managed-default-samclisourcebucket-1lljvk7s3ie0m
A different default S3 bucket can be set in samconfig.toml
Saved arguments to config file
Running 'sam deploy' for future deployments will use the parameters saved above.
The above parameters can be changed by modifying samconfig.toml
Learn more about samconfig.toml syntax at
https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/serverless-sam-cli-config.html
2020-12-02 11:49:19,046 | Sending Telemetry: {'metrics': [{'commandRun': {'awsProfileProvided': False, 'debugFlagProvided': True, 'region': '', 'commandName': 'sam deploy', 'duration': 44232, 'exitReason': 'NoRegionError', 'exitCode': 255, 'requestId': '0a3089b2-9e7f-44f2-85f0-f7046662b230', 'installationId': '1ee15a53-c3bf-4c2c-a7b8-38d00e17c1e5', 'sessionId': '38bcc37a-3c75-4c70-8adf-1425c48a3d00', 'executionEnvironment': 'CLI', 'pyversion': '3.8.6', 'samcliVersion': '1.12.0'}}]}
2020-12-02 11:49:19,583 | HTTPSConnectionPool(host='aws-serverless-tools-telemetry.us-west-2.amazonaws.com', port=443): Read timed out. (read timeout=0.1)
Traceback (most recent call last):
File "/usr/local/bin/sam", line 33, in <module>
sys.exit(load_entry_point('aws-sam-cli==1.12.0', 'console_scripts', 'sam')())
File "/usr/local/Cellar/aws-sam-cli/1.12.0/libexec/lib/python3.8/site-packages/click/core.py", line 829, in __call__
return self.main(*args, **kwargs)
File "/usr/local/Cellar/aws-sam-cli/1.12.0/libexec/lib/python3.8/site-packages/click/core.py", line 782, in main
rv = self.invoke(ctx)
File "/usr/local/Cellar/aws-sam-cli/1.12.0/libexec/lib/python3.8/site-packages/click/core.py", line 1259, in invoke
return _process_result(sub_ctx.command.invoke(sub_ctx))
File "/usr/local/Cellar/aws-sam-cli/1.12.0/libexec/lib/python3.8/site-packages/click/core.py", line 1066, in invoke
return ctx.invoke(self.callback, **ctx.params)
File "/usr/local/Cellar/aws-sam-cli/1.12.0/libexec/lib/python3.8/site-packages/click/core.py", line 610, in invoke
return callback(*args, **kwargs)
File "/usr/local/Cellar/aws-sam-cli/1.12.0/libexec/lib/python3.8/site-packages/click/decorators.py", line 73, in new_func
return ctx.invoke(f, obj, *args, **kwargs)
File "/usr/local/Cellar/aws-sam-cli/1.12.0/libexec/lib/python3.8/site-packages/click/core.py", line 610, in invoke
return callback(*args, **kwargs)
File "/usr/local/Cellar/aws-sam-cli/1.12.0/libexec/lib/python3.8/site-packages/samcli/lib/telemetry/metrics.py", line 148, in wrapped
raise exception # pylint: disable=raising-bad-type
File "/usr/local/Cellar/aws-sam-cli/1.12.0/libexec/lib/python3.8/site-packages/samcli/lib/telemetry/metrics.py", line 114, in wrapped
return_value = func(*args, **kwargs)
File "/usr/local/Cellar/aws-sam-cli/1.12.0/libexec/lib/python3.8/site-packages/samcli/commands/deploy/command.py", line 178, in cli
do_cli(
File "/usr/local/Cellar/aws-sam-cli/1.12.0/libexec/lib/python3.8/site-packages/samcli/commands/deploy/command.py", line 280, in do_cli
package_context.run()
File "/usr/local/Cellar/aws-sam-cli/1.12.0/libexec/lib/python3.8/site-packages/samcli/commands/package/package_context.py", line 102, in run
code_signer_client = boto3.client("signer")
File "/usr/local/Cellar/aws-sam-cli/1.12.0/libexec/lib/python3.8/site-packages/boto3/__init__.py", line 91, in client
return _get_default_session().client(*args, **kwargs)
File "/usr/local/Cellar/aws-sam-cli/1.12.0/libexec/lib/python3.8/site-packages/boto3/session.py", line 258, in client
return self._session.create_client(
File "/usr/local/Cellar/aws-sam-cli/1.12.0/libexec/lib/python3.8/site-packages/botocore/session.py", line 834, in create_client
client = client_creator.create_client(
File "/usr/local/Cellar/aws-sam-cli/1.12.0/libexec/lib/python3.8/site-packages/botocore/client.py", line 83, in create_client
client_args = self._get_client_args(
File "/usr/local/Cellar/aws-sam-cli/1.12.0/libexec/lib/python3.8/site-packages/botocore/client.py", line 306, in _get_client_args
return args_creator.get_client_args(
File "/usr/local/Cellar/aws-sam-cli/1.12.0/libexec/lib/python3.8/site-packages/botocore/args.py", line 71, in get_client_args
final_args = self.compute_client_args(
File "/usr/local/Cellar/aws-sam-cli/1.12.0/libexec/lib/python3.8/site-packages/botocore/args.py", line 147, in compute_client_args
endpoint_config = self._compute_endpoint_config(
File "/usr/local/Cellar/aws-sam-cli/1.12.0/libexec/lib/python3.8/site-packages/botocore/args.py", line 218, in _compute_endpoint_config
return self._resolve_endpoint(**resolve_endpoint_kwargs)
File "/usr/local/Cellar/aws-sam-cli/1.12.0/libexec/lib/python3.8/site-packages/botocore/args.py", line 300, in _resolve_endpoint
return endpoint_bridge.resolve(
File "/usr/local/Cellar/aws-sam-cli/1.12.0/libexec/lib/python3.8/site-packages/botocore/client.py", line 381, in resolve
resolved = self.endpoint_resolver.construct_endpoint(
File "/usr/local/Cellar/aws-sam-cli/1.12.0/libexec/lib/python3.8/site-packages/botocore/regions.py", line 133, in construct_endpoint
result = self._endpoint_for_partition(
File "/usr/local/Cellar/aws-sam-cli/1.12.0/libexec/lib/python3.8/site-packages/botocore/regions.py", line 148, in _endpoint_for_partition
raise NoRegionError()
botocore.exceptions.NoRegionError: You must specify a region.
Issue Analytics
- State:
- Created 3 years ago
- Comments:6 (4 by maintainers)
Top Results From Across the Web
sam deploy - AWS Serverless Application Model
To deploy an AWS SAM application, use the sam deploy command from the AWS SAM CLI. ... If you specify the --guided option,...
Read more >Using the AWS Serverless Application Model (AWS SAM) to ...
When building serverless applications, you have a wide range of options for managing infrastructure and developing code.
Read more >circleci/aws-sam-serverless@4.0.0
Build, Test, and Deploy your AWS serverless applications on CircleCI utilizing the AWS Serverless Application Model.
Read more >Build & deploy all AWS resources as easy as: npm run deploy ...
Issue #6 - Sam ignores --capabilities argument when in "guided" mode. We need --capabilities CAPABILITY_NAMED_IAM in my implementation and we do ...
Read more >Deploy sample - AWS SAM Workshop
This will installs packages, build the solution and make it ready for deployment. Run sam deploy --guided . For Stack name, enter api...
Read more >
Top Related Medium Post
No results found
Top Related StackOverflow Question
No results found
Troubleshoot Live Code
Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free
Top Related Reddit Thread
No results found
Top Related Hackernoon Post
No results found
Top Related Tweet
No results found
Top Related Dev.to Post
No results found
Top Related Hashnode Post
No results found
We have found the root cause for this issue and are working on fixing it. Meanwhile, try setting the environment variable AWS_DEFAULT_REGION and see if that fixes it.
This has been released with v1.14