修改 Lambda 函数配置时出错:Lambda 和 VPC 的 ValidationException

Mer*_*aju 1 amazon-web-services amazon-vpc aws-lambda terraform terraform-provider-aws

我正在使用 AWS 模块在 terraform 中构建 lambda,我的代码如下:

\n
module "lambda_function" {\n\n# * Lambda module configs\n  source  = "terraform-aws-modules/lambda/aws"\n  version = "3.0.0"\n\n  # * Lambda Configs\n  function_name = "${var.function_name}-${var.env}"\n  description   = "My Project"\n  handler       = local.constants.lambda.HANDLER\n  runtime       = local.constants.lambda.VERSION\n  memory_size                       = 128\n  cloudwatch_logs_retention_in_days = 14\n  source_path               = "./function/"\n  timeout                   = local.constants.lambda.TIMEOUT\n  create_async_event_config = true\n  maximum_retry_attempts    = local.constants.lambda.RETRIES_ATTEMPT\n    \n  layers = [\n    data.aws_lambda_layer_version.layer_requests.arn\n  ]\n\n  environment_variables = {\n    AWS_ACCOUNT        = var.env\n    SLACK_HOOK_CHANNEL = var.SLACK_HOOK_CHANNEL\n  }\n\n  tags = {\n    Name = "${var.function_name}-${var.env}"\n  }\n\n  trusted_entities = local.constants.lambda.TRUSTED_ENTITIES\n}\n
Run Code Online (Sandbox Code Playgroud)\n

这段代码工作正常并且 lambda get 已部署。现在我需要将 lambda 放入 VPC 中。当我在资源块中添加下面的代码时,出现错误error modifying Lambda Function (lambda_name) configuration : ValidationException: \xe2\x94\x82 status code: 400, request id: de2641f6-1125-4c83-87fa-3fe32dee7b06 \xe2\x94\x82 \xe2\x94\x82 with module.lambda_function.aws_lambda_function.this[0], \xe2\x94\x82 on .terraform/modules/lambda_function/main.tf line 22, in resource "aws_lambda_function" "this": \xe2\x94\x82 22: resource "aws_lambda_function" "this" {

\n

vpc的代码是:

\n
# * VPC configurations\n  vpc_subnet_ids         = ["10.21.0.0/26", "10.21.0.64/26", "10.21.0.128/26"]\n  vpc_security_group_ids = ["sg-ffffffffff"] # Using a dummy value here\n  attach_network_policy  = true\n
Run Code Online (Sandbox Code Playgroud)\n

如果我在 AWS 控制台中使用相同的值并在 VPC 中部署 lambda,则它可以正常工作。

\n

有人可以帮忙吗?

\n

Mar*_*cin 5

您必须提供有效的子网 ID,而不是 CIDR范围。所以而不是

vpc_subnet_ids         = ["10.21.0.0/26", "10.21.0.64/26", "10.21.0.128/26"]
Run Code Online (Sandbox Code Playgroud)

它应该是

vpc_subnet_ids         = ["subnet-asfid1", "subnet-asfid2", "subnet-as4id1"]
Run Code Online (Sandbox Code Playgroud)