我有以下代码。
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?
答案 0 :(得分:0)
考虑到这是JSON,您可能需要等待Terra jsondecode
中的v0.12
才能解决问题。
答案 1 :(得分:0)
我不得不伪造您的Secrets端点,但是此测试端点返回相同的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 ...