Условно добавить свойство сайта с помощью шаблонов ARM - PullRequest
0 голосов
/ 06 февраля 2020

В некоторых случаях я хочу, чтобы у моего сайта было свойство hostNameSslStates. Я пытался выяснить, как сделать это, не имея отдельных развертываний для сайтов с hostNameSslState и сайтов без.

Так я бы добавил сайт сегодня, затем я добавлю слоты, конфигурацию, сертификаты, роли и т. Д. c, чтобы общий размер файла ARM был намного больше.

{
    "name": "[parameters('appServiceName')]",
    "type": "Microsoft.Web/sites",
    "apiVersion": "2018-11-01",
    "location": "[parameters('location')]",
    "tags": {
        "displayName": "AppService"
    },
    "identity": {
        "type": "SystemAssigned"
    },
    "properties": {
        "serverFarmId": "[resourceId('Microsoft.Web/serverfarms', parameters('appServicePlanName'))]",
        "siteConfig": "[variables('siteConfig')]",
        "hostNameSslStates": [
          {
            "name": "[parameters('websiteCustomDomainName')]",
            "sslState": "SniEnabled",
            "thumbprint": "[reference(resourceId('Microsoft.Web/certificates', variables('certificateName'))).Thumbprint]",
            "toUpdate": true
          }
        ]
    }
}

Проблема является то, что некоторые службы приложений не имеют пользовательского домена и не нуждаются в свойстве hostNameSslStates, и я не могу найти решение, как реализовать это в шаблоне. У меня может быть переменная "hostNameSslState", но я не могу обусловить свойство. Если бы я мог указать hostNameSslStates в качестве отдельного ресурса, то это решило бы мою проблему, но я не смог ее выяснить.

1 Ответ

0 голосов
/ 06 февраля 2020

вы можете сделать это:

"hostNameSslStates": "[if(something, variables('sslStuff'), json('[]'))]"

и затем в своих переменных определить sslStuff:

"sslStuff": [
    {
        "name": "[parameters('websiteCustomDomainName')]",
        "sslState": "SniEnabled",
        "thumbprint": "[reference(resourceId('Microsoft.Web/certificates', variables('certificateName'))).Thumbprint]",
        "toUpdate": true
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...