向数据添加变量
Add variable to data
我正在尝试将数据与变量 (Terraform v0.12.0) 连接起来:
variable "my_var" {
default = "secret_string"
}
auth_token = data.external.get_secret.result.var.my_var
它适用于以下情况:
auth_token = data.external.get_secret.result.secret_string
如我所见,我无法向数据添加变量。对于这种情况,我们有任何解决方法吗?谢谢
不是很清楚你需要什么。让我猜猜。
你可以有不同的端点来保存你的秘密,比如hashicorp vault、aws ssm、aws secret managers,通过这些方式,你可以避免直接在源代码中保存秘密。
这里我使用 aws ssm for an example 来说明如何通过变量引用秘密。
假设您在aws中设置了SSM密钥my_var
。
variable "my_var" {
default = "my_var"
}
data "aws_ssm_parameter" "read" {
name = "${var.my_var}"
}
所以现在你可以轻松引用它了
auth_token = "${aws_ssm_parameter.read.value}"
Note: The unencrypted value of a SecureString will be stored in the raw state as plain-text.
Note: The data source is currently following the behavior of the SSM API to return a string value, regardless of parameter type. For type StringList, we can use the built-in split() function to get values in a list. Example: split(",", data.aws_ssm_parameter.subnets.value)
我正在尝试将数据与变量 (Terraform v0.12.0) 连接起来:
variable "my_var" {
default = "secret_string"
}
auth_token = data.external.get_secret.result.var.my_var
它适用于以下情况:
auth_token = data.external.get_secret.result.secret_string
如我所见,我无法向数据添加变量。对于这种情况,我们有任何解决方法吗?谢谢
不是很清楚你需要什么。让我猜猜。
你可以有不同的端点来保存你的秘密,比如hashicorp vault、aws ssm、aws secret managers,通过这些方式,你可以避免直接在源代码中保存秘密。
这里我使用 aws ssm for an example 来说明如何通过变量引用秘密。
假设您在aws中设置了SSM密钥my_var
。
variable "my_var" {
default = "my_var"
}
data "aws_ssm_parameter" "read" {
name = "${var.my_var}"
}
所以现在你可以轻松引用它了
auth_token = "${aws_ssm_parameter.read.value}"
Note: The unencrypted value of a SecureString will be stored in the raw state as plain-text.
Note: The data source is currently following the behavior of the SSM API to return a string value, regardless of parameter type. For type StringList, we can use the built-in split() function to get values in a list. Example: split(",", data.aws_ssm_parameter.subnets.value)