我有一个定义如下的模块变量:
apis = {
"${data.aws_api_gateway_rest_api.api1.id}" = ["blue", "green"],
"${data.aws_api_gateway_rest_api.api2.id}" = ["blue"],
}
我需要将此结构转换为以下内容:
[
[data.aws_api_gateway_rest_api.api1.id, "blue"],
[data.aws_api_gateway_rest_api.api1.id, "green"],
[data.aws_api_gateway_rest_api.api2.id, "blue"],
]
用于在for_each
表达式中创建用于创建api网关使用计划的动态块
我有以下内容,我认为这很接近正确,但是第一个for表达式中的id
变量在第二个for表达式主体中不可访问:
dynamic "api_stages" {
for_each = flatten([
for id, stages in var.apis: [
for stage in stages: [id, stage]
]
])
content {
api_id = api_stages.value[0]
stage = api_stages.value[1]
}
}
有人知道如何实现这一目标吗?
答案 0 :(得分:0)
经过反复的喘气之后,我决定通过尝试将地图转换为apis
的格式来简化我的问题。这意味着我可以遍历apis
中的for_each
变量,而无需进行任何转换。
不是确切问题的解决方案,而是一种解决方法