Terraform创建镜像Lambda报handler和runtime必填错误排查
问题产生原因
AWS Lambda Terraform资源的package_type参数默认值为Zip,即使你已经配置了image_uri、image_config这类容器镜像部署专属的参数,只要没有显式声明package_type = "Image",Terraform AWS Provider就会按照默认的Zip包部署规则做参数校验,判定你缺少Zip类型必填的handler、runtime字段,从而抛出对应报错。
修复方案
在aws_lambda_function资源块中显式添加package_type = "Image"参数,明确告知Provider当前使用容器镜像方式部署Lambda,修正后的配置如下:
resource "aws_lambda_function" "my_lambda" { package_type = "Image" image_uri = "<my_ecr_uri>" function_name = "my_function_name" role = aws_iam_role.iam_for_lambda.arn architectures = ["x86_64"] image_config { command = ["handler.sh"] entry_point = ["/bin/sh"] working_directory = "/usr/src" } }
- 配置修改完成后,先执行
terraform plan确认输出的变更项中Lambda的包类型为Image,确认无误后执行terraform apply即可完成部署,不会再触发该参数校验错误。
内容的提问来源于stack exchange,提问作者Oded Doel
相关产品推荐
相关产品推荐

