Python 2.7 aws CloudLambda python错误处理程序
我需要从cloudformation创建aws Lambda(python)。lambda函数已经创建,但是当我试图执行lambda时,我不断得到以下错误。我尝试了很多方法,但都没能成功Python 2.7 aws CloudLambda python错误处理程序,python-2.7,amazon-web-services,aws-lambda,amazon-cloudformation,Python 2.7,Amazon Web Services,Aws Lambda,Amazon Cloudformation,我需要从cloudformation创建aws Lambda(python)。lambda函数已经创建,但是当我试图执行lambda时,我不断得到以下错误。我尝试了很多方法,但都没能成功 { "errorMessage": "Bad handler 'lambda_handler'" } 这就是我如何从cloudformation创建lambda的 创建一个简单的python hello程序,其中包含print语句(尽可能简单) 代码: 压缩python并将其放在S3中。(我尝试了文件夹和
{
"errorMessage": "Bad handler 'lambda_handler'"
}
这就是我如何从cloudformation创建lambda的
请给我指一下正确的方向。提前谢谢。我想问题在于您对“Handler”的声明 它应该包含模块名和函数名,即它应该是module_name.lambda_handler,其中module_name是包含处理程序函数的文件名
在使用boto3 for python创建lambda函数时,我遇到了相同的错误-这为我解决了问题。是的,感谢您的帮助。这就解决了问题。我认为AWS应该在他们的文档中包含这一点,以便其他人可以清楚地看到它。这就是我所做的
"Handler": "simple_python_filename.lambda_handler",
"Code": {
"S3Bucket": "mybuckname",
"S3Key": "simple_python.zip"
其中我的zip文件是“simple_python.zip”。我在zip文件中的文件名是“simple\u python\u filename.py”。我在py文件中的函数是“lambda_hander”。另外,请确保将.py文件放在zip文件的根目录中。
如果您来这里是因为看到我发布的图像中的错误,那么修复方法是在AWS lambda代码屏幕的处理程序字段中,在处理程序名称前面加上lambda_函数
例如,如果代码中的处理程序名称为lambda\u handler
,则必须在代码屏幕上的处理程序字段中使用lambda\u function.lambda\u handler
这只是意味着分配给python lambda函数的默认模块名与您猜测的lambda_函数
相同
这就是我的问题所在,它也适用于terraform,aws_lambda_函数对象的处理程序字段。格式是lambda_function_name.name_of_函数在文件上这也是我的问题。我的lambda handler位于另一个文件中,虽然名为
app
,但对我来说它是app.lambda\u handler
"Resources": {
"LF1ZOLJ": {
"Type": "AWS::Lambda::Function",
"Properties": {
"Handler": "lambda_handler",
"Code": {
"S3Bucket": "mybuckname",
"S3Key": "simplepython.zip"
},
"Description": "cfn-create-lambda",
"Role": "arn:aws:iam::305760000000:role/lambda_basic_execution",
"Runtime": "python2.7",
"Timeout": 60
},
"Metadata": {
"AWS::CloudFormation::Designer": {
"id": "xxxxxxxxxxxxxxxxxxxxxxxx"
}
}
}
}
"Handler": "simple_python_filename.lambda_handler",
"Code": {
"S3Bucket": "mybuckname",
"S3Key": "simple_python.zip"