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

如何从AWS SSM参数动态填充Terraform字符串列表

解决方法

AWS SSM的StringList类型参数,在Terraform的aws_ssm_parameter数据源中,除了返回逗号拼接字符串的value字段,还有一个**values(复数形式)字段**,它会直接返回拆分后的字符串列表,无需手动调用split。

直接修改本地变量定义即可实现需求:

locals {
  accounts = data.aws_ssm_parameter.account_list.values
}

如果你的SSM参数值包含逗号后的空格(比如12345678910, 12345678911),values返回的列表元素会带前导空格,可通过trimspace清理每个元素:

locals {
  accounts = [for acc in data.aws_ssm_parameter.account_list.values : trimspace(acc)]
}

为什么之前的split会报错?

当SSM参数类型为StringList时,Terraform的value字段返回的并非纯粹字符串类型(部分版本中会被标记为特殊的列表字符串类型),直接使用split会触发类型不匹配错误。而values字段是Terraform专为StringList类型参数提供的预拆分列表,完全适配需求。

关于可行性

用SSM参数存储动态更新的账号ID列表完全可行,这种场景非常适合用SSM参数实现配置与代码解耦,无需将静态列表硬编码在Terraform代码中。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.16 03:34:52