2016-04-25 13 views
0

Ich versuche, eine ARM-Vorlage für die Bereitstellung von mehreren Webapps zu entwickeln, aber ich stecke fest, versuchen, die Webanwendung mit den in Microsoft.Web/sites/config verfügbaren Einstellungen zu konfigurieren. Was auch immer ich dort einstelle, die Einstellungen werden einfach ignoriert, wenn ich die Webapp bereitstelle. Ich basiere meine Vorlage auf David Ebbos example.Azure ignoriert Website-Konfigurationseinstellungen in ARM-Vorlage

Dies ist, was ich im Moment versuche:

// Serverfarm (appservice) 
{ 
    "apiVersion": "2015-08-01", 
    "type": "Microsoft.Web/serverfarms", 
    "sku": { 
     "name": "B1", 
     "tier": "Standard", 
     "size": "B1", 
     "family": "B", 
     "capacity": 1 
    }, 
    "name": "[variables('appSvcName')]", 
    "location": "[resourceGroup().location]", 
    "tags": { 
     "project": "[[variables('webAppName')]]" 
    }, 
    "properties": { 
     "name": "[variables('appSvcName')]", 
     "numberOfWorkers": 1 
    } 
}, 
// Site (Webapp) 
{ 
    "apiVersion": "2015-08-01", 
    "type": "Microsoft.Web/sites", 
    "name": "[variables('webAppName')]", 
    "location": "[resourceGroup().location]", 
    "tags": { 
     "project": "[[variables('webAppName')]]" 
    }, 
    "dependsOn": [ 
     "[resourceId('Microsoft.Web/serverfarms', variables('appSvcName'))]" 
    ], 
    "properties": { 
     "serverFarmId": "[resourceId('Microsoft.Web/serverfarms', variables('appSvcName'))]", 
     "hostNames": [ 
      "[concat(variables('webAppName'), '.azurewebsites.net')]" 
     ], 
     "enabledHostNames": [ 
      "[concat(variables('webAppName'), '.azurewebsites.net')]", 
      "[concat(variables('webAppName'), '.scm.azurewebsites.net')]" 
     ], 
     // TODO : These resources are ignored so far 
     "resources": [ 
      { 
       "apiVersion": "2015-08-01", 
       "name": "web", 
       "type": "Microsoft.Web/sites/config", 
       "location": "[resourceGroup().location]", 
       "dependsOn": [ 
        "[resourceId('Microsoft.Web/Sites', variables('webAppName'))]" 
       ], 
       "properties": { 
        "phpVersion": "", 
        "netFrameworkVersion": "v4.6", 
        "use32BitWorkerProcess": false, /* 64-bit platform */ 
        "webSocketsEnabled": true, 
        "alwaysOn": true, 
        "requestTracingEnabled": true, /* Failed request tracing, aka 'freb' */ 
        "httpLoggingEnabled": true, /* IIS logs (aka Web server logging) */ 
        "logsDirectorySizeLimit": 40, /* 40 MB limit for IIS logs */ 
        "detailedErrorLoggingEnabled": true, /* Detailed error messages */ 
        "remoteDebuggingEnabled": false, 
        "remoteDebuggingVersion": "VS2015", 
        "defaultDocuments": [ 
         "default.aspx", 
         "Default.htm", 
         "Default.html", 
         "index.html", 
         "hostingstart.html" 
        ] 
       } 
      }, 
      { 
       "apiVersion": "2015-08-01", 
       "name": "connectionstrings", 
       "type": "Microsoft.Web/sites/config", 
       "location": "[resourceGroup().location]", 
       "dependsOn": [ 
        "[resourceId('Microsoft.Web/Sites', variables('webAppName'))]" 
       ], 
       "properties": { 
        "umbracoDbDsn": { 
         "value": "[concat('Data Source=tcp:', reference(concat('Microsoft.Sql/servers/', variables('sqlServerName'))).fullyQualifiedDomainName, ',1433;Initial Catalog=', variables('sqlDbName'), ';User Id=', variables('appSvcName'), '@', variables('sqlServerName'), ';Password=e15cO1PtIR5dtq3zUlwK;')]", 
         "type": "SQLAzure" 
        } 
       } 
      } 
     ] 
    } 
} 

Eine Sache, die ich ein wenig verwirrt bin, ist, dass, wenn ich (Get-AzureRmResourceProvider -ProviderNamespace Microsoft.Web).ResourceTypes in meinem azurPowerShell-Konsole laufen dort keine Websites/config ResourceTypeName zur Verfügung steht.

Was gibt? Wurde der Config-Ressourcentyp aus den Vorlagendefinitionen entfernt? Verwende ich die falsche Version? Ich habe eine Reihe von verschiedenen Kombinationen ausprobiert, ohne Erfolg.

+1

Warum setzen Sie "Ressourcen" in "Eigenschaften"? Es sollte außerhalb von "Eigenschaften" und unter Ihrer Web-App sein. –

+0

Ich hatte @JackZeng nicht bemerkt, danke, dass ich es entdeckt habe. – Hauge

Antwort

1

finden Sie in diesem Blog - http://wp.sjkp.dk/arm-templates-set-always-on-and-other-site-properties/

Sie müssten siteconfig Objekt unter resource.properties von Web/config.

{ 
    "apiVersion": "2015-08-01", 
    "name": "[parameters('webSiteName')]", 
    "type": "Microsoft.Web/sites", 
    "location": "[resourceGroup().location]", 
    "tags": { 
     "[concat('hidden-related:', resourceGroup().id, '/providers/Microsoft.Web/serverfarms/', parameters('hostingPlanName'))]": "Resource", 
     "displayName": "Website" 
    }, 
    "dependsOn": [ 
     "[concat('Microsoft.Web/serverfarms/', parameters('hostingPlanName'))]" 
    ], 
    "properties": { 
     "name": "[parameters('webSiteName')]", 
     "serverFarmId": "[resourceId('Microsoft.Web/serverfarms', parameters('hostingPlanName'))]" 
    }, 
    "resources": [ 
     { 
      "apiVersion": "2015-08-01", 
      "name": "web", 
      "type": "config", 
      "dependsOn": [ 
       "[concat('Microsoft.Web/sites/', parameters('webSiteName'))]" 
      ], 
      "properties": { 
       "javaVersion": "1.8", 
       "javaContainer": "TOMCAT", 
       "javaContainerVersion": "8.0", 
       "siteConfig": { 
        "<supported-property>": "<value>", 
       } 
      } 
     } 
    ] 
} 
0

Fehler im Schema, wie von @JackZheng kommentiert. Diese Fehler wurden vom Befehl Test-AzureRmResourceGroupDeployment ebenfalls nicht gemeldet, was es etwas schwieriger macht, sie zu finden und zu korrigieren.