Including how to:
- Set Connection Strings
- Set app settings with a Cosmos DB Accunt Key, the Azure Storage Key and App Insights Instrumentation Key
- Output the Website Publishing Username and Password
- AlwaysOn turned on
{
...
"resources": [
{
"comments": "",
"type": "Microsoft.Web/sites",
"kind": "WebApp",
"name": "[parameters('AppServiceApiName')]",
"apiVersion": "2015-08-01",
"location": "[resourceGroup().location]",
"scale": null,
"properties": {
"name": "[parameters('AppServiceApiName')]",
"serverFarmId": "[resourceId('Microsoft.Web/serverfarms', parameters('ServerFarmName'))]",
"siteConfig": {
"AlwaysOn": true,
"cors": {
"allowedOrigins": "[parameters('FrontEndSiteUrlForCors')]"
},
"connectionStrings": [
{
"name": "AzureWebJobsDashboard",
"connectionString": "[concat('DefaultEndpointsProtocol=https;AccountName=', parameters('storageAccountName'), ';AccountKey=', listKeys(resourceId('Microsoft.Storage/storageAccounts', parameters('storageAccountName')), providers('Microsoft.Storage', 'storageAccounts').apiVersions[0]).keys[0].value, ';EndpointSuffix=core.windows.net')]",
"type": "Custom"
},
{
"name": "AzureWebJobsStorage",
"connectionString": "[concat('DefaultEndpointsProtocol=https;AccountName=', parameters('storageAccountName'), ';AccountKey=', listKeys(resourceId('Microsoft.Storage/storageAccounts', parameters('storageAccountName')), providers('Microsoft.Storage', 'storageAccounts').apiVersions[0]).keys[0].value, ';EndpointSuffix=core.windows.net')]",
"type": "Custom"
}
]
}
},
"dependsOn": [
// NOTE: for simplicity these resources are not included in this template
"[resourceId('Microsoft.Web/serverfarms', parameters('ServerFarmName'))]",
"[resourceId('Microsoft.Storage/storageAccounts', parameters('StorageAccountName'))]",
"[resourceId('Microsoft.DocumentDB/databaseAccounts', parameters('CosmosDBAccountName'))]",
"[resourceId('Microsoft.Insights/components', parameters('AppInsightsName'))]"
],
"resources": [
{
"name": "appsettings",
"type": "config",
"apiVersion": "2015-08-01",
"dependsOn": [
"[resourceId('Microsoft.Web/sites', parameters('AppServiceApiName'))]"
],
"properties": {
"CosmosDb:Key": "[listKeys(resourceId('Microsoft.DocumentDB/databaseAccounts', parameters('CosmosDBAccountName')), providers('Microsoft.DocumentDB', 'databaseAccounts').apiVersions[0]).primaryMasterKey]",
"CosmosDb:Endpoint": "[reference(concat('Microsoft.DocumentDb/databaseAccounts/', parameters('CosmosDBAccountName'))).documentEndpoint]",
"AzureStorageConnectionString": "[concat('DefaultEndpointsProtocol=https;AccountName=', parameters('storageAccountName'), ';AccountKey=', listKeys(resourceId('Microsoft.Storage/storageAccounts', parameters('storageAccountName')), providers('Microsoft.Storage', 'storageAccounts').apiVersions[0]).keys[0].value, ';EndpointSuffix=core.windows.net')]",
"ApplicationInsights:InstrumentationKey": "[reference(resourceId('Microsoft.Insights/components', parameters('AppInsightsName')), providers('Microsoft.Insights', 'components').apiVersions[0]).InstrumentationKey]"
}
}
]
},
{
"name": "[parameters('ServerFarmName')]",
"type": "Microsoft.Web/serverfarms",
"location": "[resourceGroup().location]",
"apiVersion": "2015-08-01",
"sku": {
"name": "[parameters('ServerFarmSku')]"
},
"dependsOn": [],
"tags": {
"displayName": "ServerFarm"
},
"properties": {
"name": "[parameters('ServerFarmName')]",
"numberOfWorkers": 1
}
}
],
"outputs": {
"ApiPublishingUserName": {
"type": "string",
"value": "[list(resourceId('Microsoft.Web/sites/config', parameters('AppServiceApiName'), 'publishingcredentials'), providers('Microsoft.Web', 'sites').apiVersions[0]).properties.publishingUserName]"
},
"ApiPublishingPassword": {
"type": "string",
"value": "[list(resourceId('Microsoft.Web/sites/config', parameters('AppServiceApiName'), 'publishingcredentials'), providers('Microsoft.Web', 'sites').apiVersions[0]).properties.publishingPassword]"
},
"ApiPublishingUrl": {
"type": "string",
"value": "[concat(parameters('AppServiceApiName'), '.scm.azurewebsites.net:443' )]"
}
}
}
- Get publish credentials via ARM:
Invoke-AzureRmResourceAction -ResourceId /subscriptions/27cafca8-XXXX-4264-b399-45d0c9cca1ab/resourceGroups/testarmdeployment2/providers/Microsoft.Web/sites/mysite/config/publishingcredentials -Action list -ApiVersion 2015-08-01
- List operations of a resource provider (listKeys, list, etc.)
Get-AzureRmProviderOperation -OperationSearchString "Microsoft.Web/sites/*" | where {$_.Operation -like "*list*"}