gpt4 book ai didi

terraform - 将 JSON 字符串解码为地形图

转载 作者:行者123 更新时间:2023-12-04 03:00:27 27 4
gpt4 key购买 nike

我正在使用 HTTP data source从内部服务检索数据。该服务返回 JSON 数据。

我无法插入返回的 JSON 数据并在其中查找数据。

例如:

模块 A

data "http" "json_data" {
url = "http://myservice/jsondata"

# Optional request headers
request_headers {
"Accept" = "application/json"
}
}

output "json_data_key" {
value = "${lookup(data.http.json_data.body, "mykey")}"
}

主文件
provider "aws" {
region = "${var.region}"
version = "~> 0.1"
}

module "moduleA" {
source = "../../../terraform-modules/moduleA"
}

resource "aws_instance" "example" {
ami = "ami-2757f631"
instance_type = "${module.moduleA.json_data_key}"
}

查找函数将无法提取 JSON 数据中的键。

有什么方法可以将 JSON 数据解码为地形图?

最佳答案

与 map 转换没有直接关系,但这里有一个带有 jsondecode 的附加示例如果您在 AWS SecretsManager 中有一个多值 key (=JSON),并且您想在另一个服务中使用与它不同的值,因为我一直在努力解决这个问题。
检索 secret :

data "aws_secretsmanager_secret" "oauth_client" {
name = "oauth-client"
}

data "aws_secretsmanager_secret_version" "oauth_client" {
secret_id = data.aws_secretsmanager_secret.oauth_client.id
}
在 Lambda 中使用它,例如:
resource "aws_lambda_function" "lambda" {
[...]
environment {
variables = {
OAUTH_CLIENT_ID = jsondecode(data.aws_secretsmanager_secret_version.oauth_client.secret_string)["client_id"]
OAUTH_CLIENT_SECRET = jsondecode(data.aws_secretsmanager_secret_version.oauth_client.secret_string)["client_secret"]
}
}
}

关于terraform - 将 JSON 字符串解码为地形图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46371424/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com