Azure игнорирует настройки конфигурации сайта в шаблоне ARM
Я пытаюсь разработать шаблон ARM для развертывания нескольких веб-приложений, но я застрял, пытаясь настроить веб-приложение, используя параметры, доступные в Microsoft.Web/sites/config. Что бы я ни указывал, настройки просто игнорируются при развертывании веб-приложения. Я основываю свой шаблон на примере Дэвида Эббоса.
Вот что я сейчас пытаюсь:
// 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"
}
}
}
]
}
}
Одна вещь, которая меня немного смущает, это то, что когда я бегу (Get-AzureRmResourceProvider -ProviderNamespace Microsoft.Web).ResourceTypes
в моей лазурной консоли powershell нет доступных сайтов / config ResourceTypeName.
Что дает? Был ли тип ресурсов конфигурации удален из определений шаблона? Я использую неправильный apiVersion? Я пробовал несколько разных комбинаций, но безрезультатно.
3 ответа
Пожалуйста, смотрите этот блог - http://wp.sjkp.dk/arm-templates-set-always-on-and-other-site-properties/
Вам потребуется объект siteConfig в файле resource.properties 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>",
}
}
}
]
}
Ошибки в схеме, как прокомментировал @JackZheng. Эти ошибки не были зарегистрированы Test-AzureRmResourceGroupDeployment
команда, что делает его несколько сложнее найти и исправить.
Вы можете использовать настройки приложения в разделе ресурсы-> свойства ->SiteConfig, как показано ниже.
"siteConfig": {
"appSettings": [
{
"name": "AppSetting1",
"value": "Value1"
}
]
}