如何通过Terraform从本地JSON文件提取apiKey作为输出
解决Terraform读取本地JSON文件后提取字段的问题
data.local_file.myfile.content返回的是原始字符串类型的文件内容,并非结构化的JSON对象,所以直接通过点语法访问client.apiKey会触发类型错误。解决核心是用Terraform内置的jsondecode()函数将字符串解析为可访问的结构化对象。
方法1:直接在输出中解析
output "api_key" { value = jsondecode(data.local_file.myfile.content).client.apiKey }
方法2:定义本地值复用解析结果
如果需要在多个资源中使用JSON内的字段,建议先定义本地值存储解析后的配置,避免重复解析:
locals { client_config = jsondecode(data.local_file.myfile.content) } output "api_key" { value = local.client_config.client.apiKey }
传递给其他资源
后续需要将apiKey传入其他资源时,直接引用解析后的字段即可:
resource "your_resource" "example" { api_key = local.client_config.client.apiKey # 其他资源参数... }
内容的提问来源于stack exchange,提问作者Sheikh Aafaq Rashid
相关产品推荐
相关产品推荐

