Terraform 错误 "Provisioned Concurrency Configs cannot be applied to unpublished function versions" - 如何解决?

Terraform error "Provisioned Concurrency Configs cannot be applied to unpublished function versions" - how to solve?

我尝试像这样创建预配置并发 Lambda:

locals {
  lambda_name = "mylambda"
  provisioned_concurrency = 10
}

module "mylambda-lambda" {
  source = "terraform-aws-modules/lambda/aws"
 
  function_name = "${var.environment_name}-${local.lambda_name}"
  // abriged config detailes
}


module "mylambda-alias" {
  source = "terraform-aws-modules/lambda/aws//modules/alias"
  name = local.lambda_name
  function_name = module.mylambda-lambda.this_lambda_function_name
}

resource "aws_lambda_provisioned_concurrency_config" "auth_authorizer" {
  function_name = module.mylambda-lambda.this_lambda_function_name
  provisioned_concurrent_executions = local.provisioned_concurrency
  qualifier = module.mylambda-alias.this_lambda_alias_name
}

它在控制台中显示限定符(显然是别名)设置为 $LATEST

但是使用并发设置时出现错误

Error: error putting Lambda Provisioned Concurrency Config (<lambda name>): InvalidParameterValueException: Provisioned Concurrency Configs cannot be applied to unpublished function versions.
{
  RespMetadata: {
    StatusCode: 400,
    RequestID: "392f5609-086e-43f6-89af-a0ec0f7e3dc7"
  },
  Message_: "Provisioned Concurrency Configs cannot be applied to unpublished function versions.",
  Type: "User"
}

如何避免这个错误?

正如@jellycsc 所指出的,您需要发布一个新版本。

您已经为此使用了 terraform aws 模块,它接受标志 publish

module "mylambda-lambda" {
  source = "terraform-aws-modules/lambda/aws"
  publish = true
 
  function_name = "${var.environment_name}-${local.lambda_name}"
  // abriged config detailes
}

完整示例here