如何通过 Terraform 或 ARM 部署 App Service Extension?

How to deploy an App Service Extension via Terraform or ARM?

我们正在为我们的 AppService 使用 扩展。如何通过 ARM 模板 and/or Terraform 自动添加它?我在 Azure 为应用程序或服务计划生成的 ARM 模板中找不到它。

谢谢!

这是您可以参考的模板,根据需要使用参数extensionName AspNetCoreRuntime.2.2.x64 和extensionVersion 2.2.0-preview3-35497。您可以在 Azure Resource Explorer 中找到扩展信息。

{
   "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
   "contentVersion": "1.0.0.0",
   "parameters": {
       "siteName": {
           "type": "string",
           "metadata": {
               "description": "The Azure App Service Name"
           }
       },
       "extensionName": {
           "type": "string",
           "metadata": {
               "description": "The Site Extension Name."
           }
       },
       "extensionVersion": {
           "type": "string",
           "metadata": {
               "description": "The Extension Version"
           }
       }
   },
   "resources": [
       {
           "type": "Microsoft.Web/sites/siteextensions",
           "name": "[concat(parameters('siteName'), '/', parameters('extensionName'))]",
           "apiVersion": "2015-04-01",
           "location": "[resourceGroup().location]",
           "properties": {
               "version": "[parameters('extensionVersion')]"
           }
       }
   ]
}

结果:

您还可以在 Terraform 中使用 ARM 模板。您可以在 main.tf 中添加一个 azurerm_deployment_template 块。是这样的

resource "azurerm_template_deployment" "extension" {
  name                = "extension"
  resource_group_name = "${azurerm_resource_group.main.name}"
  template_body       = "${file("arm/siteextensions.json")}"

  parameters {
    "siteName"          = "${azurerm_app_service.main.name}"
    "extensionName"     = "AspNetCoreRuntime.2.2.x64"
    "extensionVersion"  = "2.2.0-preview3-35497"
  }

  deployment_mode     = "Incremental"
}

您可以从此博客中获得有关 applying Azure App Service extensions with ARM

的更多详细信息