Bug: sam local invoke - AttributeError
Description:
Steps to reproduce:
Observed result:
Expected result:
Additional environment details (Ex: Windows, Mac, Amazon Linux etc)
- OS:
sam --version:- AWS region:
# Paste the output of `sam --info` here
Add --debug flag to command you are running
Getting Error as
Invoking Container created from helloworldfunction:python3.12-v1
Building image..................
Error: 'NoneType' object has no attribute 'get' Traceback: File "/opt/homebrew/Cellar/aws-sam-cli/1.137.1/libexec/lib/python3.13/site-packages/click/core.py", line 1082, in main rv = self.invoke(ctx) File "/opt/homebrew/Cellar/aws-sam-cli/1.137.1/libexec/lib/python3.13/site-packages/click/core.py", line 1697, in invoke return _process_result(sub_ctx.command.invoke(sub_ctx)) ~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^ File "/opt/homebrew/Cellar/aws-sam-cli/1.137.1/libexec/lib/python3.13/site-packages/click/core.py", line 1697, in invoke return _process_result(sub_ctx.command.invoke(sub_ctx)) ~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^ File "/opt/homebrew/Cellar/aws-sam-cli/1.137.1/libexec/lib/python3.13/site-packages/click/core.py", line 1443, in invoke return ctx.invoke(self.callback, **ctx.params) ~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/homebrew/Cellar/aws-sam-cli/1.137.1/libexec/lib/python3.13/site-packages/click/core.py", line 788, in invoke return __callback(*args, **kwargs) File "/opt/homebrew/Cellar/aws-sam-cli/1.137.1/libexec/lib/python3.13/site-packages/samcli/cli/cli_config_file.py", line 347, in wrapper return func(*args, **kwargs) File "/opt/homebrew/Cellar/aws-sam-cli/1.137.1/libexec/lib/python3.13/site-packages/click/decorators.py", line 92, in new_func return ctx.invoke(f, obj, *args, **kwargs) ~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/homebrew/Cellar/aws-sam-cli/1.137.1/libexec/lib/python3.13/site-packages/click/core.py", line 788, in invoke return __callback(*args, **kwargs) File "/opt/homebrew/Cellar/aws-sam-cli/1.137.1/libexec/lib/python3.13/site-packages/samcli/lib/telemetry/metric.py", line 185, in wrapped raise exception # pylint: disable=raising-bad-type ^^^^^^^^^^^^^^^ File "/opt/homebrew/Cellar/aws-sam-cli/1.137.1/libexec/lib/python3.13/site-packages/samcli/lib/telemetry/metric.py", line 150, in wrapped return_value = func(*args, **kwargs) File "/opt/homebrew/Cellar/aws-sam-cli/1.137.1/libexec/lib/python3.13/site-packages/samcli/lib/utils/version_checker.py", line 43, in wrapped actual_result = func(*args, **kwargs) File "/opt/homebrew/Cellar/aws-sam-cli/1.137.1/libexec/lib/python3.13/site-packages/samcli/cli/main.py", line 95, in wrapper return func(*args, **kwargs) File "/opt/homebrew/Cellar/aws-sam-cli/1.137.1/libexec/lib/python3.13/site-packages/samcli/commands/local/invoke/cli.py", line 126, in cli do_cli( ~~~~~~^ ctx, ^^^^ ...<24 lines>... no_memory_limit, ^^^^^^^^^^^^^^^^ ) # pragma: no cover ^ File "/opt/homebrew/Cellar/aws-sam-cli/1.137.1/libexec/lib/python3.13/site-packages/samcli/commands/local/invoke/cli.py", line 235, in do_cli context.local_lambda_runner.invoke( ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^ context.function_identifier, ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ...<3 lines>... override_runtime=runtime, ^^^^^^^^^^^^^^^^^^^^^^^^^ ) ^ File "/opt/homebrew/Cellar/aws-sam-cli/1.137.1/libexec/lib/python3.13/site-packages/samcli/commands/local/lib/local_lambda.py", line 169, in invoke self.local_runtime.invoke( ~~~~~~~~~~~~~~~~~~~~~~~~~^ config, ^^^^^^^ ...<6 lines>... extra_hosts=self.extra_hosts, ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ) ^ File "/opt/homebrew/Cellar/aws-sam-cli/1.137.1/libexec/lib/python3.13/site-packages/samcli/lib/telemetry/metric.py", line 325, in wrapped_func return_value = func(*args, **kwargs) File "/opt/homebrew/Cellar/aws-sam-cli/1.137.1/libexec/lib/python3.13/site-packages/samcli/local/lambdafn/runtime.py", line 229, in invoke container = self.create( function_config, debug_context, container_host, container_host_interface, extra_hosts ) File "/opt/homebrew/Cellar/aws-sam-cli/1.137.1/libexec/lib/python3.13/site-packages/samcli/local/lambdafn/runtime.py", line 100, in create container = LambdaContainer( function_config.runtime, ...<15 lines>... mount_symlinks=self._mount_symlinks, ) File "/opt/homebrew/Cellar/aws-sam-cli/1.137.1/libexec/lib/python3.13/site-packages/samcli/local/docker/lambda_container.py", line 122, in init _command = (image_config.get("Command") if image_config else None) or config.get("Cmd")
Hi @omkarsp644 thanks for reporting, could you help to share the template.yaml and the Dockerfile that caused this issue?
I'm seeing the same thing
template.yaml
AWSTemplateFormatVersion: '2010-09-09'
Transform: AWS::Serverless-2016-10-31
Description: >
python3.13
Sample SAM Template for newhire-workflow
# More info about Globals: https://github.com/awslabs/serverless-application-model/blob/master/docs/globals.rst
Globals:
Function:
Timeout: 3
Resources:
HelloWorldFunction:
Type: AWS::Serverless::Function # More info about Function Resource: https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlessfunction
Properties:
PackageType: Image
Architectures:
- x86_64
Events:
HelloWorld:
Type: Api # More info about API Event Source: https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#api
Properties:
Path: /hello
Method: get
Metadata:
Dockerfile: Dockerfile
DockerContext: ./hello_world
DockerTag: python3.13-v1
Outputs:
# ServerlessRestApi is an implicit API created out of Events key under Serverless::Function
# Find out more about other implicit resources you can reference within SAM
# https://github.com/awslabs/serverless-application-model/blob/master/docs/internals/generated_resources.rst#api
HelloWorldApi:
Description: "API Gateway endpoint URL for Prod stage for Hello World function"
Value: !Sub "https://${ServerlessRestApi}.execute-api.${AWS::Region}.amazonaws.com/Prod/hello/"
HelloWorldFunction:
Description: "Hello World Lambda Function ARN"
Value: !GetAtt HelloWorldFunction.Arn
HelloWorldFunctionIamRole:
Description: "Implicit IAM Role created for Hello World function"
Value: !GetAtt HelloWorldFunctionRole.Arn
Dockerfile
FROM public.ecr.aws/lambda/python:3.13
COPY app.py requirements.txt ./
RUN python3.13 -m pip install -r requirements.txt -t .
# Command can be overwritten by providing a different command in the template directly.
CMD ["app.lambda_handler"]