如何从 azurerm_resource_group_template_deployment 读取 output_content

How to read output_content from azurerm_resource_group_template_deployment

我已经定义了一个 azurerm_resource_group_template_deployment my_rm,它有 ARM 模板源:

{
  ...
  "parameters": {...  }, 
  "resources": [ ...  ],
  "outputs": {
    "db_name": {
      "type": "string",
      "value": "test_value"
    } 
  }
}

我想在 terraform 中使用此输出,例如:

output "db_name" {
  value = azurerm_resource_group_template_deployment.my_rm.output_content["db_name"]
}

不幸的是上面的定义returns空值。

在 terraform 中定义输出的正确方法是什么?

output_content 导出 ARM 模板部署输出的 JSON 内容

经过我的验证,你可以输出内容

output "db_name" {
  value = azurerm_resource_group_template_deployment.my_rm.output_content
}

然后运行terraform apply,你会看到输出的结果,然后你可以改用

过滤结果
output "db_name" {
  value = jsondecode(azurerm_resource_group_template_deployment.my_rm.output_content).db_name.value
}

请注意,db_name 与您的地形代码中的声明 db_name 不同,它确实应该与上述第一步中的输出 JSON 键匹配。

例如,