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

Terraform脚本中是否可以获取非自有维护的Lambda层最新版本?

解决方案

可以通过Terraform的AWS数据源aws_lambda_layer_version自动获取指定Lambda层的最新可用版本,无需手动维护版本号,具体实现步骤如下:

步骤1:添加Lambda层数据源

在你的Terraform配置中新增如下数据源块,配置为自动拉取目标层的最新版本:

data "aws_lambda_layer_version" "shared_layer" {
  # 目标Lambda层的名称
  layer_name = "my-layer-name"
  # 层所属的AWS账号ID,避免拉取到同区域其他账号的同名层
  owner = "587522145896"
  # 筛选匹配你函数运行时的层版本,避免拉取到不兼容的版本
  compatible_runtimes = ["python3.8"]
  # 开启自动获取最新版本
  most_recent = true
}

步骤2:修改Lambda模块的层配置

把原来写死版本号的层ARN,替换为上面数据源返回的ARN即可:

module "lambda_function" {
  source = "terraform-aws-modules/lambda/aws"

  function_name = "my-lambda1"
  description   = "My awesome lambda function"
  handler       = "index.lambda_handler"
  runtime       = "python3.8"

  source_path = "../src/lambda-function1"

  tags = {
    Name = "my-lambda1"
  }
  
  layers = [
    # 引用数据源返回的最新版本层ARN
    data.aws_lambda_layer_version.shared_layer.arn
  ]
}

注意事项

  • 每次执行terraform plan或terraform apply时,Terraform都会主动查询当前最新的层版本,只要层发布了新版本,下一次apply就会自动把你的Lambda函数绑定到最新版本。
  • 如果后续需要锁定到某个固定版本,只需要把数据源的most_recent参数改为false,再新增version = 固定版本号参数即可,无需修改其他配置。
  • 执行Terraform的账号需要持有lambda:GetLayerVersion权限,否则无法正常拉取层的版本信息。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 03:18:03