【发布时间】:2019-05-17 23:12:01
【问题描述】:
我有一个这样定义的模块变量:
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]
}
}
有谁知道如何做到这一点?
【问题讨论】:
-
如果
id在嵌套的for中不可用,那么这是一个错误!我记得在 0.12 预发布期间已经修复了类似的问题,所以如果您不在 rc1 版本上可能值得先尝试升级,但如果您仍然发现它在最新版本中无法正常工作,请打开 GitHub 问题关于它!
标签: terraform