Подключите приложение-функцию Azure к виртуальной сети

Как я могу развернуть свое функциональное приложение, подключенное к виртуальной сети, с помощью шаблона руки?

Прямо сейчас мой шаблон руки хорошо разворачивает приложение-функцию на основе AppServicePlan и задает "vnetName" в разделе "Свойства" ресурса "site"... но после развертывания приложение-функция по-прежнему отображается как "не настроено" для любой виртуальной сети. Затем я могу зайти в портал и добавить в желаемую виртуальную сеть пару щелчков мыши... но почему это не работает через шаблон руки? Может кто-нибудь предоставить примерный образец руки для этого?

2 ответа

Решение

С ARM я могу делать все, кроме создания пакета VPN - именно в этом заключается разница между настройкой свойств ресурса и установлением правильного подключения приложения к VNET.

Все в этой статье ( https://docs.microsoft.com/en-gb/azure/app-service-web/app-service-vnet-integration-powershell) можно легко преобразовать из PowerShell в ARM, кроме Get-AzureRmVpnClientPackage

Гипотетически, если вы используете устаревшую VNET, вы можете получить URL-адрес пакета VPN-клиента через ARM, потому что устаревший поставщик ресурсов VNET поддерживает эту операцию ( https://docs.microsoft.com/en-us/azure/active-directory/ Ролевые операции контроля доступа-ресурса-провайдера):

Microsoft.ClassicNetwork/virtualNetworks/gateways/listPackage/action

Провайдер ARM VNET, похоже, не

При дальнейшем рассмотрении это невозможно только через ARM. Вот инструкции по подключению веб-приложения к виртуальной сети: https://docs.microsoft.com/en-gb/azure/app-service-web/app-service-vnet-integration-powershell


Старый ответ: Вот еще один пост, в котором мы пытаемся добиться того же с помощью веб-приложений (функции построены на веб-приложениях): /questions/6097477/podklyuchite-veb-prilozhenie-azure-k-virtualnoj-seti-ispolzuya-shablon-arm/6097492#6097492


Если мне нужно было угадать на основе команды powershell, попробуйте добавить подресурс на сайт типа config с именем web, аналогично шаблону руки для развертывания github: https://github.com/MicrosoftDocs/azure-docs/blob/master/articles/app-service-web/app-service-web-arm-from-github-provision.md#web-app

Однако может быть какое-то волшебство под капотом.

{
  "name": "[parameters('siteName')]",
  "type": "Microsoft.Web/sites"
  "location": ...,
  "apiVersion": ...,
  "properties": ...,
  "resources": [
    "name": "web",
    "type": "config",
    "apiVersion": "2015-08-01",
    "dependsOn": [
      "[resourceId('Microsoft.Web/Sites', parameters('siteName'))]"
    ],
    "properties": {
      "vnetName": "[parameters('vnetName')]"
    },
  ]
}