Terrafrom数据源一个本地文件,并从内容中检索一些键作为输出



我有一个本地文件(命名为x.json)包含一些json内容。像

{
"client": {
"apiKey": "xyzabcpqr!23",
"permissions": {},
"firebaseSubdomain": "my-project-1"
}
}

我在这个文件上做数据源,比如

data "local_file" "myfile" {
filename = "x.json" #localfile
}

现在我想提取apiKey作为地形,并将输出传递给其他资源。

output "apiKey" {
value = data.local_file.myfile.content
}

但是我没有找到任何选项来获得它。

我也试过这个,但它抛出的错误为

不能访问基本类型值(字符串)上的属性。

output "apiKey" {
value = data.local_file.myfile.content.client.apiKey
}

假设你有这个:

data "local_file" "myfile" {
filename = "x.json"
}

您可以通过解析为JSON(作为文本读取)来访问特定的值。

output "apiKey" {
value = jsondecode(data.local_file.myfile.content).apiKey
}

作为旁注,鉴于这是一个敏感文件,我建议使用local_sensitive_file代替。local_file

希望能帮到你。

除了使用本地文件输出,你还可以将你的配置作为变量传递。

对于每个Terraform模块,在规划和应用之前,将客户端配置设置为变量:

export TF_VAR_client='{"apiKey": "xyzabcpqr!23","permissions": {},"firebaseSubdomain": "my-project-1"}'

terraform apply -var='apiKey={"apiKey": "xyzabcpqr!23","permissions": {},"firebaseSubdomain": "my-project-1"}'

然后在Terraform代码中:

variables.tffile

variable "client" {
description = "Client"
type = "map"
}

main.tffile

resource "your_resource" "name" {
apikey = var.client["apiKey"]
....

相关内容

  • 没有找到相关文章

最新更新