如何使用 terraform apply 的输出作为另一个 terraform 变量的输入?

How do you use the output of a terraform apply as input into another terraform variable?

策略即代码 - Azure - Terraform https://registry.terraform.io/providers/hashicorp/azurerm/latest/docs/resources/policy_definition

输出是一个id。此 id 需要用作策略分配的变量。 https://registry.terraform.io/providers/hashicorp/azurerm/latest/docs/resources/resource_group_policy_assignment

  1. 这在 terraform 中是怎么写的?
  2. terraform apply 是否需要为每个定义和赋值分开?

看起来您刚刚开始使用 Terraform,但将一个资源的输出传递给另一个资源非常容易,Terraform 将确保在 resource_group_policy_Assignment 之前部署 policy_definition。

假设块的名称称为 policy,如 terraform 网站所示。 策略分配中对 ID 的引用将类似于 - azurerm_policy_definition.policy.id

请阅读 terraform 中的文档以获取参考资源。 https://www.terraform.io/language/expressions/references#resources https://www.terraform.io/language/expressions/references#references-to-resource-attributes

您可以简单地将 azurerm_policy_definition 输出传递给资源 azurerm_resource_group_policy_assignment,就像您在 DOC

中找到的示例一样
resource "azurerm_resource_group_policy_assignment" "example" {
  name                 = "example"
  resource_group_id    = azurerm_resource_group.example.id
  policy_definition_id = azurerm_policy_definition.example.id # This is the output of azurerm_policy_definition resource

  ...
  ...
}