Terraform创建Lambda后执行apply报错:ValidationException
Terraform 再次执行apply时Lambda函数出现ValidationException 400错误的排查与解决
以下是针对该错误的具体排查方向和解决方法:
检查Lambda IAM角色有效性
确认var.lambda_role_arn对应的IAM角色未被删除、权限未被篡改,同时验证角色的信任策略是否包含Lambda服务主体:{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "lambda.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }修正Lambda Handler配置
当前handler配置为lambda_handler不符合Python Lambda的规则——正确格式应为文件名.函数名。假设你的代码文件是lambda_function.py,且处理函数名为lambda_handler,需修改handler字段:handler = "lambda_function.lambda_handler"同时确认ZIP包根目录下存在对应文件,且函数定义正确。
验证ZIP包完整性
检查data.archive_file生成的index.zip是否存在、未损坏,可手动解压确认目录结构是否符合要求(Python代码需放在ZIP根目录,而非子文件夹)。检查变量合法性
- 确认
var.lambdafunctionname符合Lambda命名规则(仅允许字母、数字、连字符、下划线,长度1-64字符) - 验证
var.lambdatags的键值对是否符合AWS标签规范(键名不能包含:、/等特殊字符)
- 确认
刷新Terraform状态
若状态文件与实际资源存在差异,执行以下命令刷新后重新apply:terraform refresh terraform apply确认运行时支持性
部分AWS区域已停止对Python 3.8的支持,可尝试将runtime改为python3.9或更高版本验证。
内容的提问来源于stack exchange,提问作者Jason
相关产品推荐
相关产品推荐

