将变量从terraform传递到手臂模板

时间:2019-07-18 08:50:48

标签: azure-resource-manager terraform-provider-azure

我正在使用Terraform部署ARM模板。 我们使用Terraform部署了所有的Azure基础设施,但是对于AKS,有一些预览功能尚未在terraform中使用,因此我们想使用ARM模板部署AKS群集。 如果我使用TF创建Log Analytics工作区,那么如何将工作区ID传递给ARM。

resource "azurerm_resource_group" "test" {
  name     = "k8s-test-bram"
  location = "westeurope"
}

resource "azurerm_log_analytics_workspace" "test" {
  name                = "lawtest"
  location            = "${azurerm_resource_group.test.location}"
  resource_group_name = "${azurerm_resource_group.test.name}"
  sku                 = "PerGB2018"
  retention_in_days   = 30
}

因此,这是AKS ARM的一个片段,我要在其中启用监视,并引用了workspaceresourceId。但是,如何定义/声明参数以从使用TF创建的工作空间中获取ID

        "properties": {
            "kubernetesVersion": "[parameters('kubernetesVersion')]",
            "enableRBAC": "[parameters('EnableRBAC')]",
            "dnsPrefix": "[parameters('DnsPrefix')]",
            "addonProfiles": {
                "httpApplicationRouting": {
                    "enabled": false
                },
                omsagent": {
                  "enabled": true,
                  "config": {
                    "logAnalyticsWorkspaceResourceID": "[parameters('workspaceResourceId')]"
                  }
                }
            },

1 个答案:

答案 0 :(得分:1)

您可以使用azurerm_template_deployment部署的parameters属性来传递参数:

  parameters = {
    "workspaceResourceId" = "${azurerm_log_analytics_workspace.test.id}"
  }

我认为应该看起来差不多,here's对此的官方文件。