terraform - Terraform - 循环数据源并创建地图,将此地图传递给模块
问题描述
我想用列表循环secrets
数据源。grafana-secrets
此输出应映射为env_secrets
内部模块。现在模块将使用这个映射vars = {}
(即使它是空的,它的通用模块)并将模板文件。
这是我的非工作用例,仅用于说明:
variable "grafana-secrets" {
type = "list"
default = ["GF_DATABASE_USER","GF_AUTH_GENERIC_OAUTH_CLIENT_SECRET","GF_SESSION_PROVIDER_CONFIG"]
}
data "azurerm_key_vault_secret" "secrets" {
count = "${length(var.grafana-secrets)}"
name = "${element(var.grafana-secrets, count.index)}"
vault_uri = "https://foobar.vault.azure.net/"
}
module "grafana" {
source = "modules/deployment"
env_secrets = {
"${element(var.grafana-secrets, count.index)}" = data.azurerm_key_vault_secret.secret.*.value
}
}
模块/部署:
data "template_file" "template" {
template = ".secrets"
vars = "${merge(
env_secrets,
map(
"dummy", "dummy"
)
)}"
}
解决方案
推荐阅读
- c# - 我应该如何声明一个类类型列表?
- java - 在 pdf java 中转换布局
- python - 在不同形状的数组之间映射数据
- haskell - 无法将类型“a”与“阻止”匹配
- c - -> 的无效类型参数有 struct room
- google-speech-api - 从实时流中转录音频
- go - 查询有一个关系的正确方法
- react-native - 没有这样的文件或目录,在 React-Native 中打开 'app\build\intermediates\merged_manifests\debug\AndroidManifest.xml'
- java - 扫描仪类作为函数参数 - 如何引用它
- reactjs - React Popup 未正确呈现