Я не могу найти никаких документов или примеров о резервном копировании службы приложения Azure в шаблонах ARM, но вы можете использовать Azure PowerShell, чтобы создать службу приложения и автоматически настроить для нее резервную копию.
Попробуйте приведенный ниже PowerShell:
$name = '<name of your solution>'
$location = '<location of your solution>'
$ResourceGroupName = $name
$sites_appwithbackup_name = $name
$serverfarms_webappwithbackup_name = $name
$components_appwithbackup_name = $name
$storageAccounts_webappbk_name = $name
try {
New-AzResourceGroup -Name $ResourceGroupName -Location $location
Start-Sleep -Seconds 5
New-AzResourceGroupDeployment -ResourceGroupName $ResourceGroupName -TemplateFile "<path of template file>" -sites_appwithbackup_name $sites_appwithbackup_name -serverfarms_webappwithbackup_name $serverfarms_webappwithbackup_name -components_appwithbackup_name $components_appwithbackup_name -storageAccounts_webappbk_name $storageAccounts_webappbk_name -location $location
$webapp = Get-AzWebApp -Name $sites_appwithbackup_name -ResourceGroupName $ResourceGroupName
$storage = Get-AzStorageAccount -Name $storageAccounts_webappbk_name -ResourceGroupName $ResourceGroupName
$storageContainerSAS = New-AzStorageContainerSASToken -Context $storage.Context -Name "backup" -Permission "rwdl" -ExpiryTime (Get-Date -Year 2300)
$storageContainerURL = $storage.Context.BlobEndPoint + "backup" + $storageContainerSAS
Edit-AzWebAppBackupConfiguration -FrequencyInterval 30 -FrequencyUnit Day -RetentionPeriodInDays 30 -WebApp $webapp -StorageAccountUrl $storageContainerURL
}
catch {
Remove-AzResourceGroup -Name $ResourceGroupName
}
Это мой шаблон в этом случае:
{
"$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"sites_appwithbackup_name": {
"type": "String"
},
"serverfarms_webappwithbackup_name": {
"type": "String"
},
"components_appwithbackup_name": {
"type": "String"
},
"storageAccounts_webappbk_name": {
"type": "String"
},
"location": {
"type": "String"
}
},
"variables": {},
"resources": [
{
"type": "microsoft.insights/components",
"apiVersion": "2015-05-01",
"name": "[parameters('components_appwithbackup_name')]",
"location": "[parameters('location')]",
"kind": "web",
"properties": {
"Application_Type": "web",
"Request_Source": "IbizaWebAppExtensionCreate"
}
},
{
"type": "Microsoft.Storage/storageAccounts",
"apiVersion": "2019-04-01",
"name": "[parameters('storageAccounts_webappbk_name')]",
"location": "[parameters('location')]",
"sku": {
"name": "Standard_RAGRS",
"tier": "Standard"
},
"kind": "StorageV2",
"properties": {
"networkAcls": {
"bypass": "AzureServices",
"virtualNetworkRules": [],
"ipRules": [],
"defaultAction": "Allow"
},
"supportsHttpsTrafficOnly": true,
"encryption": {
"services": {
"file": {
"enabled": true
},
"blob": {
"enabled": true
}
},
"keySource": "Microsoft.Storage"
},
"accessTier": "Hot"
}
},
{
"type": "Microsoft.Web/serverfarms",
"apiVersion": "2016-09-01",
"name": "[parameters('serverfarms_webappwithbackup_name')]",
"location": "[parameters('location')]",
"sku": {
"name": "S1",
"tier": "Standard",
"size": "S1",
"family": "S",
"capacity": 1
},
"kind": "app",
"properties": {
"name": "[parameters('serverfarms_webappwithbackup_name')]",
"perSiteScaling": false,
"reserved": false,
"targetWorkerCount": 0,
"targetWorkerSizeId": 0
}
},
{
"type": "Microsoft.Storage/storageAccounts/blobServices",
"apiVersion": "2019-04-01",
"name": "[concat(parameters('storageAccounts_webappbk_name'), '/default')]",
"dependsOn": [
"[resourceId('Microsoft.Storage/storageAccounts', parameters('storageAccounts_webappbk_name'))]"
],
"properties": {
"cors": {
"corsRules": []
},
"deleteRetentionPolicy": {
"enabled": false
}
}
},
{
"type": "Microsoft.Web/sites",
"apiVersion": "2016-08-01",
"name": "[parameters('sites_appwithbackup_name')]",
"location": "[parameters('location')]",
"dependsOn": [
"[resourceId('Microsoft.Web/serverfarms', parameters('serverfarms_webappwithbackup_name'))]"
],
"kind": "app",
"properties": {
"enabled": true,
"hostNameSslStates": [
{
"name": "[concat(parameters('sites_appwithbackup_name'), '.azurewebsites.net')]",
"sslState": "Disabled",
"hostType": "Standard"
},
{
"name": "[concat(parameters('sites_appwithbackup_name'), '.scm.azurewebsites.net')]",
"sslState": "Disabled",
"hostType": "Repository"
}
],
"serverFarmId": "[resourceId('Microsoft.Web/serverfarms', parameters('serverfarms_webappwithbackup_name'))]",
"reserved": false,
"scmSiteAlsoStopped": false,
"clientAffinityEnabled": true,
"clientCertEnabled": false,
"hostNamesDisabled": false,
"containerSize": 0,
"dailyMemoryTimeQuota": 0,
"httpsOnly": false
}
},
{
"type": "Microsoft.Web/sites/config",
"apiVersion": "2016-08-01",
"name": "[concat(parameters('sites_appwithbackup_name'), '/web')]",
"location": "[parameters('location')]",
"dependsOn": [
"[resourceId('Microsoft.Web/sites', parameters('sites_appwithbackup_name'))]"
],
"properties": {
"numberOfWorkers": 1,
"defaultDocuments": [
"Default.htm",
"Default.html",
"Default.asp",
"index.htm",
"index.html",
"iisstart.htm",
"default.aspx",
"index.php",
"hostingstart.html"
],
"netFrameworkVersion": "v4.0",
"phpVersion": "5.6",
"pythonVersion": "",
"nodeVersion": "",
"linuxFxVersion": "",
"requestTracingEnabled": false,
"remoteDebuggingEnabled": false,
"httpLoggingEnabled": false,
"logsDirectorySizeLimit": 35,
"detailedErrorLoggingEnabled": false,
"publishingUsername": "$appwithbackup",
"scmType": "None",
"use32BitWorkerProcess": true,
"webSocketsEnabled": false,
"alwaysOn": true,
"appCommandLine": "",
"managedPipelineMode": "Integrated",
"virtualApplications": [
{
"virtualPath": "/",
"physicalPath": "site\\wwwroot",
"preloadEnabled": true,
"virtualDirectories": null
}
],
"winAuthAdminState": 0,
"winAuthTenantState": 0,
"customAppPoolIdentityAdminState": false,
"customAppPoolIdentityTenantState": false,
"loadBalancing": "LeastRequests",
"routingRules": [],
"experiments": {
"rampUpRules": []
},
"autoHealEnabled": false,
"vnetName": "",
"siteAuthEnabled": false,
"siteAuthSettings": {
"enabled": null,
"unauthenticatedClientAction": null,
"tokenStoreEnabled": null,
"allowedExternalRedirectUrls": null,
"defaultProvider": null,
"clientId": null,
"clientSecret": null,
"clientSecretCertificateThumbprint": null,
"issuer": null,
"allowedAudiences": null,
"additionalLoginParams": null,
"isAadAutoProvisioned": false,
"googleClientId": null,
"googleClientSecret": null,
"googleOAuthScopes": null,
"facebookAppId": null,
"facebookAppSecret": null,
"facebookOAuthScopes": null,
"twitterConsumerKey": null,
"twitterConsumerSecret": null,
"microsoftAccountClientId": null,
"microsoftAccountClientSecret": null,
"microsoftAccountOAuthScopes": null
},
"localMySqlEnabled": false,
"http20Enabled": false,
"minTlsVersion": "1.2",
"ftpsState": "AllAllowed",
"reservedInstanceCount": 0,
"fileChangeAuditEnabled": false
}
},
{
"type": "Microsoft.Web/sites/hostNameBindings",
"apiVersion": "2016-08-01",
"name": "[concat(parameters('sites_appwithbackup_name'), '/', parameters('sites_appwithbackup_name'), '.azurewebsites.net')]",
"location": "[parameters('location')]",
"dependsOn": [
"[resourceId('Microsoft.Web/sites', parameters('sites_appwithbackup_name'))]"
],
"properties": {
"siteName": "appwithbackup",
"hostNameType": "Verified"
}
},
{
"type": "Microsoft.Storage/storageAccounts/blobServices/containers",
"apiVersion": "2019-04-01",
"name": "[concat(parameters('storageAccounts_webappbk_name'), '/default/backup')]",
"dependsOn": [
"[resourceId('Microsoft.Storage/storageAccounts/blobServices', parameters('storageAccounts_webappbk_name'), 'default')]",
"[resourceId('Microsoft.Storage/storageAccounts', parameters('storageAccounts_webappbk_name'))]"
],
"properties": {
"publicAccess": "None"
}
}
]
}
Результат на моей стороне: Как видите, все необходимые ресурсы созданы и резервная копия настроена. Надеюсь, это поможет .