我有以下代码..
data "aws_secretsmanager_secret" "db_password" {
name = "${var.db_secret}"
}
data "aws_secretsmanager_secret_version" "db_password" {
secret_id = "${data.aws_secretsmanager_secret.db_password.id}"
}
master_password = "${data.aws_secretsmanager_secret_version.db_password.secret_string}"
它返回secret_string在这种情况下
secret_string = {"Test":"TestPassword"}
我如何切出并使用的秘密TestPassword部分用作我的MASTER_PASSWORD?
考虑到这是JSON,你可能需要等待jsondecode
在Terraform v0.12
来解决这个问题。
我只好假装你的秘密点,但此试验终点返回相同的JSON:
因此,在TF ...
data "external" "secret_string" {
program = ["curl", "http://echo.jsontest.com/Test/Testpassword"]
}
output "json_data_key" {
value = "${data.external.secret_string.result}"
}
output "PASSWORD" {
value = "${lookup(data.external.secret_string.result, "Test")}"
}
去年输出你是什么之后?
${lookup(data.external.secret_string.result, "Test")}
它给你:
data.external.secret_string: Refreshing state...
Apply complete! Resources: 0 added, 0 changed, 0 destroyed.
Outputs:
PASSWORD = Testpassword
json_data_key = {
Test = Testpassword
}
所以它肯定是可能的0.12之前解析JSON ......