Terraform配置AWS Lambda的vpc_config问题求助
解决Terraform配置AWS Lambda VPC Config的问题
你的配置存在两处明显错误,直接修正即可解决问题:
错误点说明
- security_group_ids 格式错误:
var.lambda_security_group_id本身就是list(string)类型,你用["${var.lambda_security_group_id}"]包裹后会生成嵌套列表(如[[sg-xxx, sg-yyy]]),不符合Lambda对参数的要求。 - subnet_ids 函数误用:
split(",", var.lambda_subnet_id)是错误用法,split函数的第二个参数需要是字符串类型,但var.lambda_subnet_id已经是列表,无需拆分。
修正后的main.tf配置
resource "aws_lambda_function" "lambda" { function_name = var.function_name s3_bucket = var.s3_bucket_name s3_key = var.s3_key vpc_config { security_group_ids = var.lambda_security_group_id subnet_ids = var.lambda_subnet_id } # source_code_hash = data.archive_file.zip.output_base64sha256 role = aws_iam_role.iam_for_lambda.arn handler = "welcome.lambda_handler" runtime = "python3.9" timeout = var.timeout memory_size = var.lambda_mem_size }
额外验证项
- 确保
aws_iam_role.iam_for_lambda角色已附加AWSLambdaVPCAccessExecutionRole权限策略,这是Lambda在VPC内运行的必备权限。 - 确认指定的安全组和子网属于同一VPC,且安全组配置了Lambda所需的出站规则(如访问AWS服务或内部资源)。
内容的提问来源于stack exchange,提问作者Sandeep SK
相关产品推荐
相关产品推荐

