使用Boto3调用EC2启动模板时遇HandlerNotFound错误求助
问题解决:Lambda报错Handler 'lambda_handler' missing
这个错误的核心原因是AWS Lambda找不到指定的处理函数,和你的EC2 IAM权限无关,解决方式有两种:
方法1:修改代码中的函数名
AWS Lambda默认会寻找名为lambda_handler的函数作为执行入口,你当前代码里定义的是handler,只需修改函数名即可:
import boto3 ec2 = boto3.resource('ec2') lt = { 'LaunchTemplateId': 'lt-abcd', 'LaunchTemplateName': 'My_Launch_Template', 'Version': '1' } def lambda_handler(event, context): instances = ec2.create_instances( LaunchTemplate=lt, MinCount=1, MaxCount=1 # UserData=user_data ) # 可选:添加返回值,方便验证实例创建结果 return { 'statusCode': 200, 'createdInstanceIds': [instance.id for instance in instances] }
方法2:修改Lambda的处理程序配置
如果不想修改代码函数名,可以调整Lambda控制台的处理程序配置,让它指向你定义的handler函数:
- 打开AWS Lambda控制台,找到目标函数
- 切换到配置标签页,点击常规配置区域的「编辑」按钮
- 在「处理程序」输入框中,将默认值
lambda_function.lambda_handler改为lambda_function.handler(假设你的代码文件名为lambda_function.py) - 保存修改即可
内容的提问来源于stack exchange,提问作者charles uneze
相关产品推荐
相关产品推荐

