J'essaie d'activer WebSockets pour une application Web Azure à partir d'un modèle json Azure ARM qui déploie toute mon infrastructure.

Voici un extrait concernant l'application Web Azure. Cela ne fonctionne pas, c'est-à-dire que les WebSockets sont toujours désactivés. J'ai essayé une orthographe différente sans succès: webSocketsEnabled ou WebSockets.

"resources":[
{
  "name": "[variables('MyApp')]",
  "type": "Microsoft.Web/sites",
  "location": "Brazil South",
  "apiVersion": "2016-08-01",
  "dependsOn": [
    "[resourceId('Microsoft.Web/serverfarms', variables('MyAppPlanBrazil'))]"
  ],
  "tags": {
    "[concat('hidden-related:', resourceId('Microsoft.Web/serverfarms', variables('MyAppPlanBrazil')))]": "Resource",
    "displayName": "MyAppAppBrazil"
  },
  "properties": {
    "name": "[variables('MyAppPlanBrazil')]",
    "serverFarmId": "[resourceId('Microsoft.Web/serverfarms', variables('MyAppPlanBrazil'))]",
    "siteConfig": {
      "AlwaysOn": true,
      "webSocketsEnabled": true,
      "connectionStrings": [
        {
        ...
        },
        {
        ...
        },
      ]
    }
  }
 ] 

MISE À JOUR

Comme suggéré dans la réponse ci-dessous, j'ai mis à jour le apiVersion en "2016-08-01" mais cela ne fonctionne toujours pas. Notez également que même si mon schéma est celui décrit ici, apiVersion est squiggled dans VS et il indique que le la valeur est "2015-08-01" uniquement.

MISE À JOUR2

J'ai essayé les solutions ci-dessous. Ils travaillent pour leurs auteurs mais pas pour moi. Je suppose que le problème est ailleurs. Mon infrastructure est déjà déployée et j'essaye de la mettre à jour avec webSocketsEnabled. Alors que dans la solution ci-dessous, j'imagine que les auteurs créent directement l'application Web avec webSocketsEnabled.

De plus, j'ai associé webSocketsEnabled à alwaysOn alors que le niveau de tarification de mon application Web n'autorise pas "AlwaysOn" (comme il est indiqué dans le portail, je dois mettre à niveau pour utiliser cette fonctionnalité), alors je vais essayer sans alwaysOn.

MISE À JOUR3

À la fin, le modèle ci-dessus a fonctionné lorsque j'ai supprimé AlwaysOn. Merci à ceux qui ont essayé de m'aider.

1
François 23 mai 2018 à 11:32

3 réponses

Meilleure réponse

Toute la solution ci-dessus devrait fonctionner.

Mon extrait de code initial a également fonctionné ... dès que j'ai supprimé alwaysOn.

En effet, j'utilisais un plan App Service Plan pour lequel alwaysOn n'est pas disponible. Bien qu'il n'y ait eu aucune erreur ou quoi que ce soit d'autre indiquant quelque chose de mal, je ne pouvais pas définir webSocketEnabled et alwaysOn en même temps dans ce cas.

1
François 1 juin 2018 à 07:08

Définissez la version de votre API comme suit: "2016-08-01"

Utilisation

"webSockets Enabled": true

Ceci provient de la référence de modèle Microsoft.Web / sites:

https://docs.microsoft.com/en-us/azure/templates/microsoft.web/sites

La version de l'API que vous utilisez (2015-08-01) à partir de:

https://github.com/Azure/azure-resource-manager-schemas/blob/master/schemas/2015-08-01/Microsoft.Web.json

Ne contient pas de sockets Web, mais le plus récent:

https://github.com/Azure/azure-resource-manager-schemas/blob/master/schemas/2016-08-01/Microsoft.Web.json

A webSocketsEnabled.

2
Ed Elliott 23 mai 2018 à 09:00

Veuillez essayer d'utiliser le code suivant. Cela fonctionne correctement de mon côté.

Mise à jour : ajoutez le modèle de bras de test complet et vous pouvez essayer d'utiliser le code suivant avec le nom du plan de service et le nom du groupe de ressources

{
  "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "serverFarmName": {
      "type": "string",
      "defaultValue": "YourPlan"
    },
    "serverFarmResourceGroup": {
      "type": "string",
      "defaultValue": "ResourceGroupName"
    }},
  "variables": {
    "ARMtemplateTestName": "[concat('ARMtemplateTest', uniqueString(resourceGroup().id))]"},
  "resources": [
    {
      "name": "[variables('ARMtemplateTestName')]",
      "type": "Microsoft.Web/sites",
      "location": "southcentralus",
      "apiVersion": "2015-08-01",
      "dependsOn": [ ],
      "tags": {
        "[concat('hidden-related:', resourceId(parameters('serverFarmResourceGroup'), 'Microsoft.Web/serverFarms', parameters('serverFarmName')))]": "Resource",
        "displayName": "ARMtemplateTest"
      },
      "properties": {
        "name": "[variables('ARMtemplateTestName')]",
        "serverFarmId": "[resourceId(parameters('serverFarmResourceGroup'), 'Microsoft.Web/serverFarms', parameters('serverFarmName'))]"

      },
      "resources": [
        {
          "name": "web",
          "type": "config",
          "apiVersion": "2015-08-01",
          "dependsOn": [
            "[resourceId('Microsoft.Web/sites', variables('ARMtemplateTestName'))]"
          ],
          "tags": {
            "displayName": "enableWebSocket"
          },
          "properties": {
            "webSocketsEnabled": true,
            "alwaysOn": true
          }
        },
        {
          "apiVersion": "2015-08-01",
          "name": "connectionstrings",
          "type": "config",
          "dependsOn": [
            "[resourceId('Microsoft.Web/Sites', variables('ARMtemplateTestName'))]"
          ],
          "properties": {
            "ConnString1": {
              "value": "My custom connection string",
              "type": "custom"
            },
            "ConnString2": {
              "value": "My SQL connection string",
              "type": "SQLAzure"
            }
          }
        },
        {
          "name": "appsettings",
          "type": "config",
          "apiVersion": "2015-08-01",
          "dependsOn": [
            "[resourceId('Microsoft.Web/sites', variables('ARMtemplateTestName'))]"
          ],
          "tags": {
            "displayName": "Appsetting"
          },
          "properties": {
            "key1": "value1",
            "key2": "value2"
          }
        }
      ]
    }],
  "outputs": {}
}

Résultat du test:

enter image description here

1
Tom Sun - MSFT 25 mai 2018 à 00:50