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

如何在Terraform中为AWS Lambda正确传递字符串列表环境变量?

问题解决:Terraform传递字符串列表到Lambda环境变量

错误原因很明确:AWS Lambda的environment.variables要求所有值必须是字符串类型,但你现在直接传递了列表类型,导致类型不匹配。

正确的两种实现方式

方式1:将列表转为逗号分隔的字符串

修改本地变量定义,用join函数把列表拼接成单个字符串:

locals {
  config = var.config
  alarm_arns = join(",", var.alarm_arns)
}

在Python Lambda代码中,再把字符串拆分回列表:

import os
alarm_arns = os.environ["alarm_arns"].split(",")

方式2:将列表转为JSON字符串

用jsonencode把列表序列化为JSON格式的字符串,适合结构复杂的列表:

locals {
  config = var.config
  alarm_arns = jsonencode(var.alarm_arns)
}

在Python Lambda代码中解析JSON:

import os
import json
alarm_arns = json.loads(os.environ["alarm_arns"])

额外说明

你原来的"${var.alarm_arns}"插值写法没有实际作用,Terraform会原样返回列表类型,无法满足Lambda环境变量的字符串要求,所以必须通过上述方式转换类型。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 05:15:36