Description:
I have large project made up of 50 lambas in nested stacks. I have generated the template.yml from a cdk project (see attached template.yml). When I run 'sam local start-api' the application does not run and displays a stack trace (see attachment)
Steps to reproduce:
run 'sam local start-api' with the attached template.yml
Observed result:
Traceback (most recent call last):
File "/usr/local/bin/sam", line 8, in
sys.exit(cli())
File "/usr/local/Cellar/aws-sam-cli/1.23.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.23.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.23.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.23.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.23.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.23.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.23.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.23.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.23.0/libexec/lib/python3.8/site-packages/samcli/lib/telemetry/metric.py", line 153, in wrapped
raise exception # pylint: disable=raising-bad-type
File "/usr/local/Cellar/aws-sam-cli/1.23.0/libexec/lib/python3.8/site-packages/samcli/lib/telemetry/metric.py", line 122, in wrapped
return_value = func(*args, **kwargs)
File "/usr/local/Cellar/aws-sam-cli/1.23.0/libexec/lib/python3.8/site-packages/samcli/lib/utils/version_checker.py", line 42, in wrapped
actual_result = func(*args, **kwargs)
File "/usr/local/Cellar/aws-sam-cli/1.23.0/libexec/lib/python3.8/site-packages/samcli/cli/main.py", line 90, in wrapper
return func(*args, **kwargs)
File "/usr/local/Cellar/aws-sam-cli/1.23.0/libexec/lib/python3.8/site-packages/samcli/commands/local/start_api/cli.py", line 92, in cli
do_cli(
File "/usr/local/Cellar/aws-sam-cli/1.23.0/libexec/lib/python3.8/site-packages/samcli/commands/local/start_api/cli.py", line 161, in do_cli
with InvokeContext(
File "/usr/local/Cellar/aws-sam-cli/1.23.0/libexec/lib/python3.8/site-packages/samcli/commands/local/cli_common/invoke_context.py", line 190, in enter
self._stacks = self._get_stacks()
File "/usr/local/Cellar/aws-sam-cli/1.23.0/libexec/lib/python3.8/site-packages/samcli/commands/local/cli_common/invoke_context.py", line 403, in _get_stacks
stacks, _ = SamLocalStackProvider.get_stacks(
File "/usr/local/Cellar/aws-sam-cli/1.23.0/libexec/lib/python3.8/site-packages/samcli/lib/providers/sam_stack_provider.py", line 230, in get_stacks
current = SamLocalStackProvider(
File "/usr/local/Cellar/aws-sam-cli/1.23.0/libexec/lib/python3.8/site-packages/samcli/lib/providers/sam_stack_provider.py", line 64, in init
self._extract_stacks()
File "/usr/local/Cellar/aws-sam-cli/1.23.0/libexec/lib/python3.8/site-packages/samcli/lib/providers/sam_stack_provider.py", line 116, in _extract_stacks
stack = SamLocalStackProvider._convert_cfn_stack_resource(
File "/usr/local/Cellar/aws-sam-cli/1.23.0/libexec/lib/python3.8/site-packages/samcli/lib/providers/sam_stack_provider.py", line 168, in _convert_cfn_stack_resource
if SamLocalStackProvider.is_remote_url(template_url):
File "/usr/local/Cellar/aws-sam-cli/1.23.0/libexec/lib/python3.8/site-packages/samcli/lib/providers/sam_stack_provider.py", line 250, in is_remote_url
return any([url.startswith(prefix) for prefix in ["s3://", "http://", "https://"]])
File "/usr/local/Cellar/aws-sam-cli/1.23.0/libexec/lib/python3.8/site-packages/samcli/lib/providers/sam_stack_provider.py", line 250, in
return any([url.startswith(prefix) for prefix in ["s3://", "http://", "https://"]])
AttributeError: 'collections.OrderedDict' object has no attribute 'startswith'
see attachment for full output with --debug enabled
Expected result:
The API gateway to be running locally
Additional environment details (Ex: Windows, Mac, Amazon Linux etc)
- OS: Mac Catalina 10.15.7
sam --version: 1.23.0
- AWS region: US-west-2
error.txt
template.yml.txt
Description:
I have large project made up of 50 lambas in nested stacks. I have generated the template.yml from a cdk project (see attached template.yml). When I run 'sam local start-api' the application does not run and displays a stack trace (see attachment)
Steps to reproduce:
run 'sam local start-api' with the attached template.yml
Observed result:
Traceback (most recent call last):
File "/usr/local/bin/sam", line 8, in
sys.exit(cli())
File "/usr/local/Cellar/aws-sam-cli/1.23.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.23.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.23.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.23.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.23.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.23.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.23.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.23.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.23.0/libexec/lib/python3.8/site-packages/samcli/lib/telemetry/metric.py", line 153, in wrapped
raise exception # pylint: disable=raising-bad-type
File "/usr/local/Cellar/aws-sam-cli/1.23.0/libexec/lib/python3.8/site-packages/samcli/lib/telemetry/metric.py", line 122, in wrapped
return_value = func(*args, **kwargs)
File "/usr/local/Cellar/aws-sam-cli/1.23.0/libexec/lib/python3.8/site-packages/samcli/lib/utils/version_checker.py", line 42, in wrapped
actual_result = func(*args, **kwargs)
File "/usr/local/Cellar/aws-sam-cli/1.23.0/libexec/lib/python3.8/site-packages/samcli/cli/main.py", line 90, in wrapper
return func(*args, **kwargs)
File "/usr/local/Cellar/aws-sam-cli/1.23.0/libexec/lib/python3.8/site-packages/samcli/commands/local/start_api/cli.py", line 92, in cli
do_cli(
File "/usr/local/Cellar/aws-sam-cli/1.23.0/libexec/lib/python3.8/site-packages/samcli/commands/local/start_api/cli.py", line 161, in do_cli
with InvokeContext(
File "/usr/local/Cellar/aws-sam-cli/1.23.0/libexec/lib/python3.8/site-packages/samcli/commands/local/cli_common/invoke_context.py", line 190, in enter
self._stacks = self._get_stacks()
File "/usr/local/Cellar/aws-sam-cli/1.23.0/libexec/lib/python3.8/site-packages/samcli/commands/local/cli_common/invoke_context.py", line 403, in _get_stacks
stacks, _ = SamLocalStackProvider.get_stacks(
File "/usr/local/Cellar/aws-sam-cli/1.23.0/libexec/lib/python3.8/site-packages/samcli/lib/providers/sam_stack_provider.py", line 230, in get_stacks
current = SamLocalStackProvider(
File "/usr/local/Cellar/aws-sam-cli/1.23.0/libexec/lib/python3.8/site-packages/samcli/lib/providers/sam_stack_provider.py", line 64, in init
self._extract_stacks()
File "/usr/local/Cellar/aws-sam-cli/1.23.0/libexec/lib/python3.8/site-packages/samcli/lib/providers/sam_stack_provider.py", line 116, in _extract_stacks
stack = SamLocalStackProvider._convert_cfn_stack_resource(
File "/usr/local/Cellar/aws-sam-cli/1.23.0/libexec/lib/python3.8/site-packages/samcli/lib/providers/sam_stack_provider.py", line 168, in _convert_cfn_stack_resource
if SamLocalStackProvider.is_remote_url(template_url):
File "/usr/local/Cellar/aws-sam-cli/1.23.0/libexec/lib/python3.8/site-packages/samcli/lib/providers/sam_stack_provider.py", line 250, in is_remote_url
return any([url.startswith(prefix) for prefix in ["s3://", "http://", "https://"]])
File "/usr/local/Cellar/aws-sam-cli/1.23.0/libexec/lib/python3.8/site-packages/samcli/lib/providers/sam_stack_provider.py", line 250, in
return any([url.startswith(prefix) for prefix in ["s3://", "http://", "https://"]])
AttributeError: 'collections.OrderedDict' object has no attribute 'startswith'
see attachment for full output with --debug enabled
Expected result:
The API gateway to be running locally
Additional environment details (Ex: Windows, Mac, Amazon Linux etc)
sam --version: 1.23.0error.txt
template.yml.txt