You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Terraform创建AWS Lambda别名关联预置并发时出现ValidationException报错

问题解答

核心结论

在Lambda Alias中使用aws_lambda_function.foo.version作为function_version本身完全可行,该属性就是用来返回Lambda最新发布的版本号,刚好匹配你让别名指向最新部署版本的需求。

报错原因

你遇到的ValidationException是因为Lambda函数没有开启自动发布版本的配置:
Terraform的aws_lambda_function资源默认不会主动发布新版本,如果你没有在该资源中添加publish = true参数,aws_lambda_function.foo.version的返回值会一直是$LATEST,而Lambda预置并发不支持绑定到$LATEST版本,也不支持绑定指向$LATEST的别名,因此触发参数校验错误。

修正方案

只需在你的aws_lambda_function资源配置中新增一行publish = true即可,原有别名和预置并发的配置不需要修改:

resource "aws_lambda_function" "foo" {
  # 原有其他配置保持不变,比如filename、function_name、handler、runtime等参数
  filename      = "lambda_function_payload.zip"
  function_name = "foo"
  role          = aws_iam_role.lambda_exec.arn
  handler       = "index.handler"
  runtime       = "nodejs18.x"

  # 新增此行,开启Lambda版本自动发布
  publish = true
}

# 原有配置保持不变即可
resource "aws_lambda_alias" "foo_pc" {
  name             = "PC"
  description      = "foo PC Alias"
  function_name    = aws_lambda_function.foo.arn
  function_version = aws_lambda_function.foo.version
}

resource "aws_lambda_provisioned_concurrency_config" "foo_provisioned_concurrency" {
  function_name                     = aws_lambda_alias.foo_pc.function_name
  provisioned_concurrent_executions = var.PCInit
  qualifier                         = aws_lambda_alias.foo_pc.name
}

内容的提问来源于stack exchange,提问作者k2so

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 19:45:05