question-mark
Stuck on an issue?

Lightrun Answers was designed to reduce the constant googling that comes with debugging 3rd party libraries. It collects links to all the places you might be looking at while hunting down a tough bug.

And, if you’re still stuck at the end, we’re happy to hop on a call to see how we can help out.

sam deploy --guided disregards region input

See original GitHub issue

Description:

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)

  1. OS: macOS
  2. 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:closed
  • Created 3 years ago
  • Comments:6 (4 by maintainers)

github_iconTop GitHub Comments

4reactions
prenx4xcommented, Dec 4, 2020

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.

0reactions
mndevecicommented, Dec 18, 2020

This has been released with v1.14

Read more comments on GitHub >

github_iconTop 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 >

github_iconTop Related Medium Post

No results found

github_iconTop Related StackOverflow Question

No results found

github_iconTroubleshoot Live Code

Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free

github_iconTop Related Reddit Thread

No results found

github_iconTop Related Hackernoon Post

No results found

github_iconTop Related Tweet

No results found

github_iconTop Related Dev.to Post

No results found

github_iconTop Related Hashnode Post

No results found