Шаблон ARM для настройки служб приложений с новой функцией интеграции с VNet? - PullRequest
0 голосов
/ 05 февраля 2019

Я работаю над шаблонами ARM, я создал файл шаблона с двумя или более службами приложений Azure вместе с планом обслуживания приложений, а затем настроил интеграцию VNET для каждой службы приложений.

Это пример кода JSON:

    {
  "comments": "Web-App-01",
  "name": "[variables('app_name_01')]",
  "type": "Microsoft.Web/sites",
  "location": "[variables('location')]",
  "apiVersion": "2016-08-01",
  "dependsOn": [
    "[resourceId('Microsoft.Web/serverfarms', variables('asp_name_01'))]"
  ],
  "tags": {
    "displayName": "[variables('app_name_01')]"
  },
  "properties": {
    "name": "[variables('app_name_01')]",
    "serverFarmId": "[resourceId('Microsoft.Web/serverfarms', variables('asp_name_01'))]",
    "siteConfig": {
      "alwaysOn": true
    }
  },
    "resources": [
      {
        "type": "Microsoft.Web/sites/virtualNetworkConnections",
        "name": "[concat(variables('app_name_01'), '/', variables('vnet_connection_name'),uniqueString('asdsdaxsdsd'))]",
        "apiVersion": "2016-08-01",
        "location": "[variables('location')]",
        "properties": {
          "vnetResourceId": "[resourceId('Microsoft.Network/virtualNetworks/subnets', variables('vm_vnet_name'), variables('web_subnet_name'))]"
        },
        "dependsOn": [
          "[resourceId('Microsoft.Web/sites', variables('app_name_01'))]",
          "[resourceId('Microsoft.Network/virtualNetworks/subnets', variables('vm_vnet_name'), variables('web_subnet_name'))]"
        ]
      }
    ]
},
{
  "comments": "Web-App-02",
  "name": "[variables('app_name_02')]",
  "type": "Microsoft.Web/sites",
  "location": "[variables('location')]",
  "apiVersion": "2016-08-01",
  "dependsOn": [
    "[resourceId('Microsoft.Web/serverfarms', variables('asp_name_02'))]"
  ],
  "tags": {
    "displayName": "[variables('app_name_02')]"
  },
  "properties": {
    "name": "[variables('app_name_02')]",
    "serverFarmId": "[resourceId('Microsoft.Web/serverfarms', variables('asp_name_01'))]",
    "siteConfig": {
      "alwaysOn": true
    }
  },
    "resources": [
      {
        "type": "Microsoft.Web/sites/virtualNetworkConnections",
        "name": "[concat(variables('app_name_02'), '/', variables('vnet_connection_name'),uniqueString('asdsdaxsdsd'))]",
        "apiVersion": "2016-08-01",
        "location": "[variables('location')]",
        "properties": {
          "vnetResourceId": "[resourceId('Microsoft.Network/virtualNetworks/subnets', variables('vm_vnet_name'), variables('web_subnet_name'))]"
        },
        "dependsOn": [
          "[resourceId('Microsoft.Web/sites', variables('app_name_02'))]",
          "[resourceId('Microsoft.Network/virtualNetworks/subnets', variables('vm_vnet_name'), variables('web_subnet_name'))]"
        ]
      }
    ]
}

Приведенный выше код отлично работает для нескольких служб приложения Azure, но для остальных служб приложения я получаю внутреннюю ошибку сервера или конфликт или ошибкаЗапрос во время интеграции VNET службы приложений Azure.

Примечание. При развертывании приведенного выше кода JSON старая интеграция с VNET настраивается вместо новой функции VNET (предварительный просмотр).Итак, мне нужно настроить новую функцию VNET (предварительный просмотр) для каждой службы приложения.

Итак, кто-нибудь может подсказать мне, как решить вышеуказанную проблему.

1 Ответ

0 голосов
/ 14 мая 2019

Я нашел рабочий пример для этого в публикации GitHub Azure Docs:

Как интегрировать новую интеграцию vnet с шаблонами ARM?

Кажетсяработать по-другому с новой интеграцией VNet, которая использует подресурс Microsoft.Web/sites/config с именем virtualNetwork вместо подресурса Microsoft.Web/sites/virtualNetworkConnections

, а также несколько требований, которые необходимо установить нацелевая подсеть / vnet (описано в ссылке).Часть интеграции выглядит примерно так:

   {
      "apiVersion": "2018-02-01",
      "type": "Microsoft.Web/sites",
      "name": "[parameters('appName')]",
      "location": "[resourceGroup().location]",

...

      "resources": [
        {
          "name": "virtualNetwork",
          "type": "config",
          "apiVersion": "2018-02-01",
          "location": "[resourceGroup().location]",
          "properties": {
            "subnetResourceid": "[parameters('subnetResourceId')]",
            "swiftSupported": true
          },
          "dependsOn": [
            "[resourceId('Microsoft.Web/sites', parameters('appName'))]"
          ]
        }
      ]
   },

Кроме этого я не нашел ничего другого, кроме как упоминать об этом в azure-rest-api-specs, который имеет "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/networkConfig/virtualNetwork"определена конечная точка:

azure-rest-api-specs / WebApps.json

Также кажется (как предполагает спецификация) замена "type": "config" на "type": "networkConfig"работает.

...