Azure 要在Terraform脚本中使用的ARM Return应用程序服务环境ID
Terraform不允许部署应用程序服务环境,因此我使用azurerm_模板_部署作为解决方案。但是,我希望在稍后创建的应用服务计划资源中引用应用服务环境ID。如何使用此方法获取并保存应用程序服务环境的ID 我正在使用app service plan资源中的depends_on标记来确保在app service环境之后创建它,但我不知道如何从创建中获取id并保存到变量。我认为这将涉及使用ARM模板的变量和输出标记Azure 要在Terraform脚本中使用的ARM Return应用程序服务环境ID,azure,terraform,azure-resource-manager,terraform-provider-azure,Azure,Terraform,Azure Resource Manager,Terraform Provider Azure,Terraform不允许部署应用程序服务环境,因此我使用azurerm_模板_部署作为解决方案。但是,我希望在稍后创建的应用服务计划资源中引用应用服务环境ID。如何使用此方法获取并保存应用程序服务环境的ID 我正在使用app service plan资源中的depends_on标记来确保在app service环境之后创建它,但我不知道如何从创建中获取id并保存到变量。我认为这将涉及使用ARM模板的变量和输出标记 resource "azurerm_template_deployment" "a
resource "azurerm_template_deployment" "ase" {
name = "ILBASE_ARM_template"
resource_group_name = "${azurerm_resource_group.ase.name}"
template_body = <<DEPLOY
{
"$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"ilbase_name": {
"type": "string"
},
"ilbase_domain_name": {
"type": "string"
},
"ilbase_subnet_name": {
"type": "string"
},
"ilbase_rglocation": {
"defaultValue": "East US",
"type": "string"
},
"vnet_id": {
"type": "string"
}
},
"variables": {
},
"resources": [
{
"apiVersion": "2016-09-01",
"type": "Microsoft.Web/hostingEnvironments",
"name": "[parameters('ilbase_name')]",
"kind": "ASEV2",
"location": "[parameters('ilbase_rglocation')]",
"properties": {
"name": "[parameters('ilbase_name')]",
"location": "[parameters('ilbase_rglocation')]",
"virtualNetwork": {
"Id": "[parameters('vnet_id')]",
"Subnet": "[parameters('ilbase_subnet_name')]"
},
"internalLoadBalancingMode": "Web, Publishing",
"multiSize": "Standard_D1_V2",
"multiRoleCount": 2,
"workerPools": null,
"ipsslAddressCount": 0,
"dnsSuffix": "[parameters('ilbase_domain_name')]",
"networkAccessControlList": [],
"frontEndScaleFactor": 15,
"apiManagementAccountId": null,
"suspended": false,
"dynamicCacheEnabled": null,
"clusterSettings": null
}
}
],
"outputs": {
}
}
DEPLOY
parameters {
"vnet_id" = "${azurerm_virtual_network.main_vnet.id}"
"ilbase_subnet_name" = "${azurerm_subnet.ase.name}"
"ilbase_name" = "${var.env}-ASE-001"
"ilbase_domain_name" = "${var.dnsName}"
"ilbase_rglocation" = "${var.location}"
}
deployment_mode = "Incremental"
}
resource "azurerm_app_service_plan" "test" {
name = "api-appserviceplan-pro"
location = "${var.location}"
resource_group_name = "${azurerm_resource_group.ase.name}"
app_service_environment_id = ????????????????????
sku {
tier = "Isolated"
size = "S1"
}
depends_on = ["azurerm_template_deployment.ase"]
}
resource“azurerm_模板_部署”“ase”{
name=“ILBASE\U ARM\U模板”
resource_group_name=“${azurerm_resource_group.ase.name}”
template_body=在ARM模板中,用于设置应用程序服务环境ID的输出
(类似这样的,没有机会测试,任何关于更改的反馈都将不胜感激!)
azurerm_模板_部署
支持。使用此映射,您可以设置
azurerm_app_service_plan.test.app_service_environment_id = azurerm_template_deployment.ase.outputs["app_service_evironment_id"]
dependens\u on
不应该是必需的,应该是隐式的(因为azurerm\u应用程序服务\u计划
使用azurerm\u模板部署的输出)嘿,史蒂文,谢谢你的回复!我现在正在测试,我会告诉你我得到了什么。
azurerm_app_service_plan.test.app_service_environment_id = azurerm_template_deployment.ase.outputs["app_service_evironment_id"]