InvalidEntrypoint for AWS Lambda with python docker container
Mar 6
I've built an image for Lambda using public.ecr.aws/lambda/python:3.8 but always get this error.
Tried changing up the function and file names, but not getting any more details for debugging.
Also I've run the function locally and the entrypoint/cmd works.
START RequestId: cb4ba88c-c347-4e7d-b1ca-031a2e02fde4 Version: $LATEST
IMAGE Launch error: fork/exec /lambda-entrypoint.sh: exec format error Entrypoint: [/lambda-entrypoint.sh] Cmd: [index.lambda_handler] WorkingDir: [/var/task]IMAGE Launch error: fork/exec /lambda-entrypoint.sh: exec format error Entrypoint: [/lambda-entrypoint.sh] Cmd: [index.lambda_handler] WorkingDir: [/var/task]END RequestId: cb4ba88c-c347-4e7d-b1ca-031a2e02fde4
REPORT RequestId: cb4ba88c-c347-4e7d-b1ca-031a2e02fde4 Duration: 12.86 ms Billed Duration: 13 ms Memory Size: 128 MB Max Memory Used: 3 MB
RequestId: cb4ba88c-c347-4e7d-b1ca-031a2e02fde4 Error: fork/exec /lambda-entrypoint.sh: exec format error
Runtime.InvalidEntrypoint
1 answer
Accepted answer · original discussion
Mar 6
Turned out to be an architecture compatibility issue -
Needed to make sure the arch matched between the lambda function, and the docker image.
Locally I was building on an M1 with arm64 but the function is configured by default to use amd64
I changed my build command to
docker buildx build --platform linux/amd64 -t <image_name>:<image_tag>
Although I could have also updated the arch type for the lambda function to use arm64
0 question comments
Use comments to ask for clarification. Post a solution as an answer.
No question comments on this page.