如何解决ARM 模板创建存储帐户和应用服务时出错
是否可以使用 ARM 模板在同一资源组中创建服务计划、应用服务和存储帐户?,当我尝试此操作时出现下一个错误:
Azure 错误:InvalidTemplateDeployment 消息:模板 根据验证程序,部署“XXXX”无效。 跟踪 ID 是“XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXX”。见内 错误详情。异常详情: 错误代码:PreflightValidationCheckFailed 消息:预检验证失败。具体错误请参考详情。
但是如果我使用不同的资源组和不同的模板,这个效果很好。
完整的ARM模板是:
{
"$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#","contentVersion": "1.0.0.0","parameters": {
"webAppName": {
"type": "String","metadata": {
"description": "The App Service name."
}
},"sku": {
"type": "string","defaultValue": "F1","metadata": {
"description": "The SKU of App Service Plan."
}
},"storageAccountName": {
"type": "string","metadata": {
"description": "The Storage Account name."
}
}
},"variables": {
"appServicePlanName": "[concat('AppServicePlan-',parameters('webAppName'))]","location": "[resourceGroup().location]"
},"resources": [
//App services plan
{
"apiVersion": "2020-06-01","type": "Microsoft.Web/serverfarms","name": "[variables('appServicePlanName')]","location": "[variables('location')]","sku": {
"name": "[parameters('sku')]"
},"properties": {
"name": "[variables('appServicePlanName')]"
}
},//App Service
{
"type": "Microsoft.Web/sites","apiVersion": "2018-11-01","name": "[parameters('webAppName')]","kind": "app","dependsOn": [
"[resourceId('Microsoft.Web/serverfarms',variables('appServicePlanName'))]"
],"properties": {
"enabled": true,"hostNameSslStates": [
{
"name": "[concat(parameters('webAppName'),'.azurewebsites.net')]","sslState": "Disabled","hostType": "Standard"
},{
"name": "[concat(parameters('webAppName'),'.scm.azurewebsites.net')]","hostType": "Repository"
}
],"reserved": false,"isXenon": false,"hyperV": false,"siteConfig": {},"scmSiteAlsoStopped": false,"clientAffinityEnabled": true,"clientCertEnabled": false,"hostNamesDisabled": false,"containerSize": 0,"dailyMemoryTimeQuota": 0,"httpsOnly": false,"redundancyMode": "None"
}
},{
"type": "Microsoft.Web/sites/config","name": "[concat(parameters('webAppName'),'/web')]","dependsOn": [
"[resourceId('Microsoft.Web/sites',parameters('webAppName'))]"
],"properties": {
"numberOfWorkers": 1,"defaultDocuments": [
"Default.htm","Default.html","Default.asp","index.htm","index.html","iisstart.htm","default.aspx","index.php","hostingstart.html"
],"netFrameworkVersion": "v2.0","requestTracingEnabled": false,"remoteDebuggingEnabled": false,"httpLoggingEnabled": false,"logsDirectorySizeLimit": 35,"detailedErrorLoggingEnabled": false,"publishingUsername": "$AdAstraflexSurveyWebAppTest","azureStorageAccounts": {},"scmType": "None","use32BitWorkerProcess": true,"webSocketsEnabled": false,"alwaysOn": false,"managedPipelineMode": "Integrated","virtualApplications": [
{
"virtualPath": "/","physicalPath": "site\\wwwroot","preloadEnabled": false
}
],"loadBalancing": "LeastRequests","experiments": {
"rampUpRules": []
},"autoHealEnabled": false,"localMySqlEnabled": false,"ipSecurityRestrictions": [
{
"ipAddress": "Any","action": "Allow","priority": 1,"name": "Allow all","description": "Allow all access"
}
],"scmIpSecurityRestrictions": [
{
"ipAddress": "Any","scmIpSecurityRestrictionsUseMain": false,"http20Enabled": false,"minTlsVersion": "1.2","ftpsState": "AllAllowed","reservedInstanceCount": 0
}
},{
"type": "Microsoft.Web/sites/hostNameBindings",'/',parameters('webAppName'),"properties": {
"siteName": "AdAstraflexSurveyWebAppTest","hostNameType": "Verified"
}
},//Storage Accounts
{
"name": "[parameters('storageAccountName')]","type": "Microsoft.Storage/storageAccounts","apiVersion": "2020-08-01-preview","sku":
{
"name": "Standard_RAGRS","tier": "Standard"
},"kind": "StorageV2","properties":
{
"minimumTlsVersion": "TLS1_2","allowBlobPublicAccess": true,"networkAcls":
{
"bypass": "AzureServices","virtualNetworkRules": [],"ipRules": [],"defaultAction": "Allow"
},"supportsHttpsTrafficOnly": true,"encryption":
{
"services":
{
"file":
{
"keyType": "Account","enabled": true
},"blob":
{
"keyType": "Account","enabled": true
}
},"keySource": "Microsoft.Storage"
},"accessTier": "Hot"
}
}
]
}
解决方法
我试过你的模板,它对我来说效果很好。您可以稍后使用新资源组或以下模板进行尝试。
{
"$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#","contentVersion": "1.0.0.0","parameters": {
"webAppName": {
"type": "String","metadata": {
"description": "The App Service name."
}
},"sku": {
"type": "string","defaultValue": "F1","metadata": {
"description": "The SKU of App Service Plan."
}
},"storageAccountName": {
"type": "string","metadata": {
"description": "The Storage Account name."
}
}
},"variables": {
"appServicePlanName": "[concat('AppServicePlan-',parameters('webAppName'))]","location": "[resourceGroup().location]"
},"resources": [
//App services plan
{
"apiVersion": "2020-06-01","type": "Microsoft.Web/serverfarms","name": "[variables('appServicePlanName')]","location": "[variables('location')]","sku": {
"name": "[parameters('sku')]"
},"properties": {
"name": "[variables('appServicePlanName')]"
}
},//App Service
{
"type": "Microsoft.Web/sites","apiVersion": "2018-11-01","name": "[parameters('webAppName')]","kind": "app","dependsOn": [
"[resourceId('Microsoft.Web/serverfarms',variables('appServicePlanName'))]"
],"properties": {
"enabled": true,"hostNameSslStates": [
{
"name": "[concat(parameters('webAppName'),'.azurewebsites.net')]","sslState": "Disabled","hostType": "Standard"
},{
"name": "[concat(parameters('webAppName'),'.scm.azurewebsites.net')]","hostType": "Repository"
}
],"reserved": false,"isXenon": false,"hyperV": false,"siteConfig": {},"scmSiteAlsoStopped": false,"clientAffinityEnabled": true,"clientCertEnabled": false,"hostNamesDisabled": false,"containerSize": 0,"dailyMemoryTimeQuota": 0,"httpsOnly": false,"redundancyMode": "None"
}
},{
"type": "Microsoft.Web/sites/config","name": "[concat(parameters('webAppName'),'/web')]","dependsOn": [
"[resourceId('Microsoft.Web/sites',parameters('webAppName'))]"
],"properties": {
"numberOfWorkers": 1,"defaultDocuments": [
"Default.htm","Default.html","Default.asp","index.htm","index.html","iisstart.htm","default.aspx","index.php","hostingstart.html"
],"netFrameworkVersion": "v2.0","requestTracingEnabled": false,"remoteDebuggingEnabled": false,"httpLoggingEnabled": false,"logsDirectorySizeLimit": 35,"detailedErrorLoggingEnabled": false,"publishingUsername": "$AdAstraflexSurveyWebAppTest","azureStorageAccounts": {},"scmType": "None","use32BitWorkerProcess": true,"webSocketsEnabled": false,"alwaysOn": false,"managedPipelineMode": "Integrated","virtualApplications": [
{
"virtualPath": "/","physicalPath": "site\\wwwroot","preloadEnabled": false
}
],"loadBalancing": "LeastRequests","experiments": {
"rampUpRules": []
},"autoHealEnabled": false,"localMySqlEnabled": false,"ipSecurityRestrictions": [
{
"ipAddress": "Any","action": "Allow","priority": 1,"name": "Allow all","description": "Allow all access"
}
],"scmIpSecurityRestrictions": [
{
"ipAddress": "Any","scmIpSecurityRestrictionsUseMain": false,"http20Enabled": false,"minTlsVersion": "1.2","ftpsState": "AllAllowed","reservedInstanceCount": 0
}
},{
"type": "Microsoft.Web/sites/hostNameBindings",'/',parameters('webAppName'),"properties": {
"siteName": "AdAstraflexSurveyWebAppTest","hostNameType": "Verified"
}
},//Storage Accounts
{
"name": "[parameters('storageAccountName')]","type": "Microsoft.Storage/storageAccounts","apiVersion": "2020-08-01-preview","sku":
{
"name": "Standard_RAGRS","tier": "Standard"
},"kind": "StorageV2","properties":
{
"minimumTlsVersion": "TLS1_2","allowBlobPublicAccess": true,"networkAcls":
{
"bypass": "AzureServices","virtualNetworkRules": [],"ipRules": [],"defaultAction": "Allow"
},"supportsHttpsTrafficOnly": true,"encryption":
{
"services":
{
"file":
{
"keyType": "Account","enabled": true
},"blob":
{
"keyType": "Account","enabled": true
}
},"keySource": "Microsoft.Storage"
},"accessTier": "Hot"
}
}
]
}
,
可以创建服务计划、应用服务和存储帐户 在使用 ARM 模板的同一资源组中?
是的,你可以这样做:
export function initializeApp(appInitService: AppInitService) {
return (): Promise<any> => {
return appInitService.Init();
}
}
发布ARM模板时,请提供参数:
{
"$schema": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#","parameters": {
"subscriptionId": {
"type": "string"
},"name": {
"type": "string"
},"location": {
"type": "string"
},"hostingPlanName": {
"type": "string"
},"serverFarmResourceGroup": {
"type": "string"
},"alwaysOn": {
"type": "bool"
},"storageAccountName": {
"type": "string"
},"sku": {
"type": "string"
},"skuCode": {
"type": "string"
},"workerSize": {
"type": "string"
},"workerSizeId": {
"type": "string"
},"numberOfWorkers": {
"type": "string"
},"currentStack": {
"type": "string"
},"phpVersion": {
"type": "string"
},"errorLink": {
"type": "string"
}
},"resources": [
{
"apiVersion": "2018-11-01","name": "[parameters('name')]","type": "Microsoft.Web/sites","location": "[parameters('location')]","tags": null,"dependsOn": [
"microsoft.insights/components/yourappname","[concat('Microsoft.Web/serverfarms/',parameters('hostingPlanName'))]","[concat('Microsoft.Storage/storageAccounts/',parameters('storageAccountName'))]"
],"properties": {
"name": "[parameters('name')]","siteConfig": {
"appSettings": [
{
"name": "APPINSIGHTS_INSTRUMENTATIONKEY","value": "[reference('microsoft.insights/components/y','2015-05-01').InstrumentationKey]"
},{
"name": "APPLICATIONINSIGHTS_CONNECTION_STRING","value": "[reference('microsoft.insights/components/yourappname','2015-05-01').ConnectionString]"
},{
"name": "AzureWebJobsStorage","value": "[concat('DefaultEndpointsProtocol=https;AccountName=',parameters('storageAccountName'),';AccountKey=',listKeys(resourceId('Microsoft.Storage/storageAccounts',parameters('storageAccountName')),'2019-06-01').keys[0].value,';EndpointSuffix=','core.windows.net')]"
},{
"name": "ApplicationInsightsAgent_EXTENSION_VERSION","value": "~2"
},{
"name": "XDT_MicrosoftApplicationInsights_Mode","value": "default"
},{
"name": "ANCM_ADDITIONAL_ERROR_PAGE_LINK","value": "[parameters('errorLink')]"
}
],"metadata": [
{
"name": "CURRENT_STACK","value": "[parameters('currentStack')]"
}
],"phpVersion": "[parameters('phpVersion')]","alwaysOn": "[parameters('alwaysOn')]"
},"serverFarmId": "[concat('/subscriptions/',parameters('subscriptionId'),'/resourcegroups/',parameters('serverFarmResourceGroup'),'/providers/Microsoft.Web/serverfarms/',"clientAffinityEnabled": true
}
},{
"apiVersion": "2018-11-01","name": "[parameters('hostingPlanName')]","kind": "","dependsOn": [],"properties": {
"name": "[parameters('hostingPlanName')]","workerSize": "[parameters('workerSize')]","workerSizeId": "[parameters('workerSizeId')]","numberOfWorkers": "[parameters('numberOfWorkers')]"
},"sku": {
"Tier": "[parameters('sku')]","Name": "[parameters('skuCode')]"
}
},{
"apiVersion": "2020-02-02-preview","name": "yourappname","type": "microsoft.insights/components","location": "centralus","properties": {
"ApplicationId": "[parameters('name')]","Request_Source": "IbizaWebAppExtensionCreate","Flow_Type": "Redfield","Application_Type": "web","WorkspaceResourceId": "/subscriptions/e5b0fcfa-e859-43f3-8d84-5e5fe29f4c68/resourcegroups/defaultresourcegroup-eus/providers/microsoft.operationalinsights/workspaces/defaultworkspace-e5b0fcfa-e859-43f3-8d84-5e5fe29f4c68-eus"
}
},{
"apiVersion": "2019-06-01","name": "[parameters('storageAccountName')]","tags": {},"sku": {
"name": "Standard_LRS"
},"properties": {
"supportsHttpsTrafficOnly": true,"minimumTlsVersion": "TLS1_2"
}
}
]
}
顺便说一句,您的模板在我这边工作正常,但请确保不要在您的模板中添加类似 {
"$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentParameters.json#","parameters": {
"subscriptionId": {
"value": "e5b0fcfa-e859-43f3-8d84-5e5fe29f4c68"
},"name": {
"value": "yourappname"
},"location": {
"value": "Central US"
},"hostingPlanName": {
"value": "yourplanname"
},"serverFarmResourceGroup": {
"value": "yourgroupname"
},"alwaysOn": {
"value": true
},"storageAccountName": {
"value": "yourstoragename"
},"sku": {
"value": "Standard"
},"skuCode": {
"value": "S1"
},"workerSize": {
"value": "0"
},"workerSizeId": {
"value": "0"
},"numberOfWorkers": {
"value": "1"
},"currentStack": {
"value": "dotnetcore"
},"phpVersion": {
"value": "OFF"
},"errorLink": {
"value": "https://yourappname.scm.azurewebsites.net/detectors?type=tools&name=eventviewer"
}
}
}
的评论。:)
我删除了我在其他服务组中拥有的存储帐户,并且我的脚本运行良好。但我不明白这是什么问题。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。