Terraform external data source脚本STDOUT正确JSON语法咨询
Terraform external 数据源返回多实例ID的正确JSON格式
报错原因
Terraform 的 external 数据源对执行脚本的标准输出有严格限制:只能返回所有键、值均为字符串类型的单层JSON对象,不支持数组、嵌套结构、非字符串类型取值。
你之前尝试的两种写法不符合要求:
- 直接返回数组的写法:根结构不是对象,无法解析
- 嵌套数组的写法:
instances字段的值是数组类型,不符合值必须为字符串的要求
正确返回格式
你可以将多个实例ID用分隔符(比如逗号)拼接为单个字符串,放在JSON的字段中,示例如下:
{ "monitoring_instance_ids": "i-1,i-2,i-3" }
Terraform 侧解析方法
拿到返回值后,用 split 函数拆分字符串即可得到实例ID列表:
locals { monitoring_instance_ids = split(",", data.external.monitoring_instances.result.monitoring_instance_ids) }
后续可以直接用 local.monitoring_instance_ids 作为列表使用。
内容的提问来源于stack exchange,提问作者dovregubben
相关产品推荐
相关产品推荐

