2016-04-25 3 views
0

Я пытаюсь разработать шаблон ARM для развертывания нескольких webapps, но я застреваю, пытаясь настроить webapp, используя настройки, доступные в Microsoft.Web/sites/config. Независимо от того, что я там установил, настройки просто игнорируются при развертывании webapp. Я основываю свой шаблон на David Ebbos example.Azure игнорирует настройки конфигурации сайта в шаблоне ARM

Это то, что я пытаюсь на данный момент:

// 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 нет сайтов/конфигурации ResourceTypeName доступна.

Что дает? Не удалось ли удалить конфигурационный ресурс из определений шаблонов? Я использую неправильную apiVersion? Я попробовал несколько различных комбинаций, но безрезультатно.

+1

Почему вы размещаете «ресурсы» внутри «свойств»? Он должен быть за пределами «свойств» и под вашим веб-приложением. –

+0

Я не заметил @JackZeng спасибо за то, что заметил. – Hauge

ответ

1

Пожалуйста, смотрите этот блог - http://wp.sjkp.dk/arm-templates-set-always-on-and-other-site-properties/

Вы должны были бы объект siteConfig под resource.properties веб/конфигурации.

{ 
    "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

Ошибки в схеме, как прокомментировал @JackZheng. Эти ошибки также не сообщаются командой Test-AzureRmResourceGroupDeployment, что затрудняет поиск и исправление.

Смежные вопросы