【发布时间】:2022-11-04 06:40:42
【问题描述】:
我有一个问题,我想将 vpc_ids 列表传递给aws_route53_zone,同时从几个模块调用中获取 id 并从状态文件中对其进行迭代。
我使用的输出格式是:
output "development_vpc_id" {
value = [for vpc in values(module.layout)[*] : vpc.id if vpc.environment == "development"]
description = "VPC id for development env"
}
我在哪里得到如下输出:
"development_vpc_id": {
"value": [
"xxxx"
],
"type": [
"tuple",
[
"string"
]
]
},
相反,我想实现以下目标:
"developmemt_vpc_id": {
"value": "xxx",
"type": "string"
},
有人可以帮助我吗?
【问题讨论】:
-
我猜这可能是因为您正在从模块中获取所有输出。您也可以将模块输出添加到问题中吗?
-
从字符串序列生成字符串需要确定您想使用什么语法来表示列表,因为字符串只能包含未区分的字符序列。你想用一些分隔符(比如每个字符串之间的逗号)将字符串连接在一起吗?还是您想生成一个包含 JSON 数组的字符串?或者是其他东西?
-
如果您假设此列表中只能有一项(因为
environment值在您的所有 VPC 中是唯一的),那么您可以使用one从该列表中提取单个元素并将其返回。
标签: terraform