首页 > 解决方案 > 无法运行 Arm 模板来重新部署资源

问题描述

我有下面的 ARM 模板,它是从我的灾难恢复源组中的现有资源生成的

{
    "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
    "contentVersion": "1.0.0.0",
    "parameters": {
        "sites_DisasterRecoveryWeb_name": {
            "defaultValue": "DisasterRecoveryWeb",
            "type": "String"
        },
        "serverfarms_applan_devuk_rockit_externalid": {
            "defaultValue": "/subscriptions ......",
            "type": "String"
        }
    },
    "variables": {},
    "resources": [
        {
            "type": "Microsoft.Web/sites",
            "apiVersion": "2018-11-01",
            "name": "[parameters('sites_DisasterRecoveryWeb_name')]",
            "location": "UK West",
            "tags": {
                "hidden-related:/subscriptions.....": "empty"
            },
            "kind": "app",
            "identity": {
                "principalId": null,
                "tenantId": null,
                "type": "SystemAssigned"
            },
            "properties": {
                "enabled": true,
                "hostNameSslStates": [
                    {
                        "name": "[concat(parameters('sites_DisasterRecoveryWeb_name'),'.azurewebsites.net')]",
                        "sslState": "Disabled",
                        "hostType": "Standard"
                    },
                    {
                        "name": "[concat(parameters('sites_DisasterRecoveryWeb_name'),'.scm.azurewebsites.net')]",
                        "sslState": "Disabled",
                        "hostType": "Repository"
                    }
                ],
                "serverFarmId": "[parameters('serverfarms_applan_devuk_rockit_externalid')]",
                "reserved": false,
                "isXenon": false,
                "hyperV": false,
                "siteConfig": {},
                "scmSiteAlsoStopped": false,
                "clientAffinityEnabled": true,
                "clientCertEnabled": false,
                "hostNamesDisabled": false,
                "containerSize": 0,
                "dailyMemoryTimeQuota": 0,
                "httpsOnly": true,
                "redundancyMode": "None"
            }
        },
        {
            "type": "Microsoft.Web/sites/config",
            "apiVersion": "2018-11-01",
            "name": "[concat(parameters('sites_DisasterRecoveryWeb_name'), '/web')]",
            "location": "UK West",
            "dependsOn": [
                "[resourceId('Microsoft.Web/sites', parameters('sites_DisasterRecoveryWeb_name'))]"
            ],
            "tags": {
                "hidden-related:......": "empty"
            },
            "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",
                "requestTracingEnabled": false,
                "remoteDebuggingEnabled": false,
                "remoteDebuggingVersion": "VS2019",
                "httpLoggingEnabled": false,
                "logsDirectorySizeLimit": 35,
                "detailedErrorLoggingEnabled": false,
                "publishingUsername": "$DisasterRecoveryWeb",
                "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,
                "managedServiceIdentityId": 146207,
                "ipSecurityRestrictions": [
                    {
                        "ipAddress": "Any",
                        "action": "Allow",
                        "priority": 1,
                        "name": "Allow all",
                        "description": "Allow all access"
                    }
                ],
                "scmIpSecurityRestrictions": [
                    {
                        "ipAddress": "Any",
                        "action": "Allow",
                        "priority": 1,
                        "name": "Allow all",
                        "description": "Allow all access"
                    }
                ],
                "scmIpSecurityRestrictionsUseMain": false,
                "http20Enabled": false,
                "minTlsVersion": "1.2",
                "ftpsState": "FtpsOnly",
                "reservedInstanceCount": 0
            }
        },
        {
            "type": "Microsoft.Web/sites/hostNameBindings",
            "apiVersion": "2018-11-01",
            "name": "[concat(parameters('sites_DisasterRecoveryWeb_name'), '/', parameters('sites_DisasterRecoveryWeb_name'), '.azurewebsites.net')]",
            "location": "UK West",
            "dependsOn": [
                "[resourceId('Microsoft.Web/sites', parameters('sites_DisasterRecoveryWeb_name'))]"
            ],
            "properties": {
                "siteName": "DisasterRecoveryWeb",
                "hostNameType": "Verified"
            }
        }
    ]
}

我的要求是设置 DR 解决方案,因此我有一个带有简单 Web 服务的 DR 源组

我想使用生成的模板,并重新部署到不同的资源组

即使我在通过 bash 运行该文件时一直使用该参数,但仍会收到错误消息

主机名灾难恢复web_dr.azurewebsites.net 无效。

理想情况下,我希望能够使用相同的资源名称,但我想即使资源位于不同的资源组中,这也是不可能的

我究竟做错了什么?

我的参数是:

{
    "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentParameters.json#",
    "contentVersion": "1.0.0.0",
    "parameters": {
        "sites_DisasterRecoveryWeb_name": {
            "value": "DisasterRecoveryWeb_dr"
        },
        "serverfarms_applan_devuk_rockit_externalid": {
            "value": "/subscriptions/.......",
        }
    }
}

我通过 bash 运行它

templateFile="..\templates\app-services\sample\template.json" parameterFile="..\templates\app-services\sample\parameters.json"

az deployment group create \
  --name testAppServiceDeployment \
  --resource-group disaster-recovery-source-ps.rg \
  --template-file $templateFile \
  --parameters $parameterFile

保罗

标签: azure

解决方案


推荐阅读