I am following this tutorial for how to create a container image and push it to AWS lamdba.
https://www.youtube.com/watch?v=DsQbBVr-GwU
I did everything just as done in the tutorial except I changed to python since that is the language my code uses. This is my resulting docker file.
FROM public.ecr.aws/lambda/python:3.8
COPY app.py ${LAMBDA_TASK_ROOT}
CMD [ "app.lambda_handler" ]
And this is my test python function
import json
def lambda_handler(event, context) :
return "Hello"
When I test locally, it runs fine and returns "Hello" as desired. However, when I push to AWS, I get this error.
{
"errorMessage": "Bad handler 'app': not enough values to unpack (expected 2, got 1)",
"errorType": "Runtime.MalformedHandlerName",
"stackTrace": []
}
So then I went and manually changed the CMD in the lambda function to "app.lambda_handler". Then, the error changed to this.
{
"errorMessage": "Unable to import module 'app': No module named 'app'",
"errorType": "Runtime.ImportModuleError",
"stackTrace": []
}
Is there something wrong with the way that I built the container image? If so then why is it running locally but not through lambda?
Thanks for any help.