使用Terraform AWS Lambda/IAM模块创建Lambda函数报ValidationException错误
问题修复方案
1 执行角色参数错误
terraform-aws-lambda模块关闭内置角色创建时,要求传入角色ARN而非角色名,且入参名为iam_role_arn而非lambda_role,将lambda模块中的对应配置修改为:
iam_role_arn = module.iam_assumable_role_custom.iam_role_arn
删除原有的lambda_role = module.iam_assumable_role_custom.iam_role_name配置。
2 处理器配置与实际文件名不匹配
你的源码文件名为copy_ami.py,但handler配置写的是index.lambda_handler,Lambda无法匹配到入口执行函数,将handler配置修改为:
handler = "copy_ami.lambda_handler"
3 策略配置冲突
你已经在IAM角色模块通过custom_role_policy_arns绑定了自定义权限策略,同时在lambda模块又开启了attach_policy = true传入同一条策略,会触发重复绑定的校验异常,删除lambda模块中如下两行配置即可:
attach_policy = true policy = module.iam_policy.arn
可选校验:源码打包逻辑校验
如果修改后仍报错,检查source_path配置,部分版本的lambda模块单独传入单个代码文件时,打包路径会出现异常,你可以将copy_ami.py放到单独的源码目录中,将source_path修改为目录路径:
source_path = "${path.module}/../../src/"
内容的提问来源于stack exchange,提问作者krisdigitx
相关产品推荐
相关产品推荐

