【问题标题】:Issue with AWS Lambda Provisioned Concurrency using Terraform使用 Terraform 的 AWS Lambda 预置并发问题
【发布时间】:2022-01-28 08:37:39
【问题描述】:

我一直在尝试为我的 AWS Lambda 函数配置 Provisioned Concurrency。我一次又一次地点击ValidationException。我为别名版本和别名名称尝试了qualifier 属性。虽然 terraform apply 它等待 2 分钟并引发错误,但它已在 AWS 控制台中成功配置且状态就绪。下面是我的配置。

resource "aws_lambda_alias" "contact_lambda_alias" {
  name             = module.aws_lambda_function_contact_alias_label.id
  function_name    = module.terraform_aws_lambda_contact.lambda_arn
  function_version = module.terraform_aws_lambda_contact.latest_published_version
}

resource "aws_lambda_provisioned_concurrency_config" "contact_lambda_alias" {
  function_name                     = module.terraform_aws_lambda_contact.lambda_arn
  provisioned_concurrent_executions = 1
  qualifier                         = module.terraform_aws_lambda_contact.latest_published_version
  timeouts {
    create = "30m"
    update = "30m"
  }
}

我尝试了使用和不使用timeouts 块,但仍然一次又一次地点击ValidationException。 这是错误 ValidationException

【问题讨论】:

  • 完整的错误信息究竟是什么?
  • 获取 Lambda 预置并发配置时出错 (arn:aws:lambda:ca-central-1:xxxxxxxxxxxx:function:ifs-dev-customer-contact:4):ValidationException
  • aws_lambda_provisioned_concurrency_config 的 Terraform 状态正在进一步应用。所以我需要手动从状态中删除资源并申请其他资源。
  • 此外,未配置需要配置预配并发的此别名 lambda 函数的 API 触发器。
  • 请澄清您的具体问题或提供更多详细信息以准确突出您的需求。正如目前所写的那样,很难准确地说出你在问什么。

标签: aws-lambda terraform


【解决方案1】:

您应该使用 alias arn

 function_name = aws_lambda_alias.contact_lambda_alias.arn

【讨论】:

  • 根据 Terraform 注册表中的文档,function_name 应该是 lambda arn 而不是别名。
  • 这是我尝试使用带有别名 arn 的 function_name 时出现的错误 error putting Lambda Provisioned Concurrency Config (arn:aws:lambda:ca-central-1:xxxxxxxxxxxx:function:ifs-dev-customer-contact:ifs-dev-ax-contact-alias:4): InvalidParameterValueException: The derived qualifier from the function name does not match the specified qualifier.
  • { │ RespMetadata: { │ StatusCode: 400, │ RequestID: "a3bc271b-5f82-4bfa-bac7-4c155996f6f0" │ }, │ Message_: "The derived qualifier from the function name does not match the specified qualifier.", │ Type: "User" │ }
  • @SreeTeja Prov Conc 仅适用于AWS explains 的别名或版本:“$LATEST 不支持预置并发。”即使TF docs 使用别名function_name = aws_lambda_alias.example.function_name
  • 但是aws_lambda_alias.example.function_name 本身就是lambda_arn,所以我使用了 lambda arn。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-09-24
  • 1970-01-01
  • 2020-10-24
  • 2022-01-28
  • 2020-12-16
  • 2022-08-16
相关资源
最近更新 更多