使用变量和字符串的值从 Terraform 数据源中获取
using value of variable and string to fetch from terraform data source
我正在尝试使用 tf 数据源从 hashicorp 保险库中获取一些证书
这是保险库中证书路径的样子
serverA:
dev-cert: <base64 encoded cert>
qa-cert: <base64 encoded cert>
test-cert: <base64 encoded cert>
此证书在其他资源块中使用,工作正常,如下所示
resource <somegcpresource> <xyz>
{
certificate = base64decode(data.vault_generic_secret.server_cryptoobjects.data["dev-cert"])
}
我可以使用自定义环境变量来获取证书的值吗?
certificate = base64decode(data.vault_generic_secret.server_cryptoobjects.data["var.env-cert"])
或本地 var 以引用保险库数据源中的密钥名称,例如;
certificate = base64decode(data.vault_generic_secret.server_cryptoobjects.data[local.certname])
是的,data.vault_generic_secret.server_cryptoobjects.data
是一个对象,因此您可以使用相应的键访问它的值。如果你声明一个变量 env-cert
:
variable "env-cert" {
type = string
default = "dev-cert"
}
那你就可以把它当key了:
certificate = base64decode(data.vault_generic_secret.server_cryptoobjects.data["var.env-cert"])
是的,您也可以使用本地作为密钥:
locals {
certname = "dev-cert"
}
certificate = base64decode(data.vault_generic_secret.server_cryptoobjects.data[local.certname])
如果您还没有查看整个用例的 Vault PKI 机密引擎,我还建议您查看,因为问题中的这个示例使用的是 KV2 机密引擎。
我正在尝试使用 tf 数据源从 hashicorp 保险库中获取一些证书
这是保险库中证书路径的样子
serverA:
dev-cert: <base64 encoded cert>
qa-cert: <base64 encoded cert>
test-cert: <base64 encoded cert>
此证书在其他资源块中使用,工作正常,如下所示
resource <somegcpresource> <xyz>
{
certificate = base64decode(data.vault_generic_secret.server_cryptoobjects.data["dev-cert"])
}
我可以使用自定义环境变量来获取证书的值吗?
certificate = base64decode(data.vault_generic_secret.server_cryptoobjects.data["var.env-cert"])
或本地 var 以引用保险库数据源中的密钥名称,例如;
certificate = base64decode(data.vault_generic_secret.server_cryptoobjects.data[local.certname])
是的,data.vault_generic_secret.server_cryptoobjects.data
是一个对象,因此您可以使用相应的键访问它的值。如果你声明一个变量 env-cert
:
variable "env-cert" {
type = string
default = "dev-cert"
}
那你就可以把它当key了:
certificate = base64decode(data.vault_generic_secret.server_cryptoobjects.data["var.env-cert"])
是的,您也可以使用本地作为密钥:
locals {
certname = "dev-cert"
}
certificate = base64decode(data.vault_generic_secret.server_cryptoobjects.data[local.certname])
如果您还没有查看整个用例的 Vault PKI 机密引擎,我还建议您查看,因为问题中的这个示例使用的是 KV2 机密引擎。