如何通过 Terraform 或 ARM 部署应用服务扩展?

tri*_*idy 4 azure terraform azure-rm-template

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

谢谢!

应用服务扩展截图

Nan*_*ong 6

这是您可以参考的模板,根据需要使用参数 extensionNameAspNetCoreRuntime.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')]"
           }
       }
   ]
}
Run Code Online (Sandbox Code Playgroud)

结果:

在此处输入图片说明

您还可以在 Terraform 中使用 ARM 模板。您可以添加一个azurerm_deployment_templatemain.tf。就像这样

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"
}
Run Code Online (Sandbox Code Playgroud)

您可以从此博客中获取有关使用 ARM 应用 Azure 应用服务扩展的更多详细信息