部署VM备份ARM模板遇NO_PARAM参数错误,求解决
部署ARM模板配置VM备份时的NO_PARAM错误排查
部署ARM模板配置VM备份时遇到如下错误:
Parameter NO_PARAM in request is invalid. Please provide correct value for parameter NO_PARAM (コード: UserErrorInvalidRequestParameter)
作为ARM部署新手,无法理解该错误含义,以下是我的template.json和patrameter.json文件内容:
template.json
{ "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#", "contentVersion": "1.0.0.0", "parameters": { "env":{ "type": "String" } }, "variables": { "subscriptionId": "[subscription().subscriptionId]", "resouceGroupName": "[resourceGroup().name]", "VMresouceGroupName": "rg-nonprod-japan-n01-test", "VMBackupSettings": { "dev": { "instanceName": "VMshir01d", "backupVaultName": "az-rsv-na-lrs-bkp01", "backupItemName": "iaasvmcontainerv2d" }, "qa": { "instanceName": "VMshir01t", "backupVaultName": "az-rsv-na-lrs-bkp01", "backupItemName": "iaasvmcontainerv2t" }, "stg": { "instanceName": "VMshir01s", "backupVaultName": "az-rsv-na-lrs-bkp01", "backupItemName": "iaasvmcontainerv2s" }, "prod": { "instanceName": "VMshir01p", "backupVaultName": "az-rsv-nap-lrs-bkp01", "backupItemName": "iaasvmcontainerv2p" } } }, "resources": [ //bkup関連のここだけ別リソースグループへのデプロイ { "name": "[concat(variables('VMBackupSettings')[parameters('env')].backupVaultName, '/Azure/vm;', variables('VMBackupSettings')[parameters('env')].backupItemName, ';', variables('resouceGroupName'),';', variables('VMBackupSettings')[parameters('env')].instanceName)]", "apiVersion": "2017-07-01", "type": "Microsoft.RecoveryServices/vaults/backupFabrics/backupProtectionIntent", "properties": { "friendlyName": "[concat(variables('VMBackupSettings')[parameters('env')].instanceName, 'BackupIntent')]", "protectionIntentItemType": "AzureResourceItem", "policyId": "[concat('Microsoft.RecoveryServices/vaults/backupPolicies/', variables('VMBackupSettings')[parameters('env')].backupVaultName, '/EnhancedPolicy')]", "sourceResourceId": "[resourceId(variables('subscriptionId'), variables('VMresouceGroupName'),'Microsoft.Compute/virtualMachines', variables('VMBackupSettings')[parameters('env')].instanceName)]" } } ] }
patrameter.json
{ "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", "contentVersion": "1.0.0.0", "parameters": { "env": { "value": "dev" } } }
错误原因及修复方案
- 参数文件名拼写错误:将
patrameter.json重命名为parameters.json,部署时指定正确的参数文件名,确保ARM能读取到env参数。 - 变量拼写错误:修正
variables中的resouceGroupName为resourceGroupName(缺少字母c),同时修正VMresouceGroupName为VMresourceGroupName,避免资源ID生成失败。 - 资源名称格式错误:
backupProtectionIntent的名称格式应为{vaultName}/Azure/{protectionIntentName},修改name字段为:"name": "[concat(variables('VMBackupSettings')[parameters('env')].backupVaultName, '/Azure/', variables('VMBackupSettings')[parameters('env')].instanceName, '-protection-intent')]" - PolicyId格式错误:使用
resourceId函数生成完整的备份策略资源ID,替换原policyId字段:"policyId": "[resourceId('Microsoft.RecoveryServices/vaults/backupPolicies', variables('VMBackupSettings')[parameters('env')].backupVaultName, 'EnhancedPolicy')]"
修复后的完整template.json示例
{ "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#", "contentVersion": "1.0.0.0", "parameters": { "env":{ "type": "String" } }, "variables": { "subscriptionId": "[subscription().subscriptionId]", "resourceGroupName": "[resourceGroup().name]", "VMresourceGroupName": "rg-nonprod-japan-n01-test", "VMBackupSettings": { "dev": { "instanceName": "VMshir01d", "backupVaultName": "az-rsv-na-lrs-bkp01", "backupItemName": "iaasvmcontainerv2d" }, "qa": { "instanceName": "VMshir01t", "backupVaultName": "az-rsv-na-lrs-bkp01", "backupItemName": "iaasvmcontainerv2t" }, "stg": { "instanceName": "VMshir01s", "backupVaultName": "az-rsv-na-lrs-bkp01", "backupItemName": "iaasvmcontainerv2s" }, "prod": { "instanceName": "VMshir01p", "backupVaultName": "az-rsv-nap-lrs-bkp01", "backupItemName": "iaasvmcontainerv2p" } } }, "resources": [ { "name": "[concat(variables('VMBackupSettings')[parameters('env')].backupVaultName, '/Azure/', variables('VMBackupSettings')[parameters('env')].instanceName, '-protection-intent')]", "apiVersion": "2017-07-01", "type": "Microsoft.RecoveryServices/vaults/backupFabrics/backupProtectionIntent", "properties": { "friendlyName": "[concat(variables('VMBackupSettings')[parameters('env')].instanceName, 'BackupIntent')]", "protectionIntentItemType": "AzureResourceItem", "policyId": "[resourceId('Microsoft.RecoveryServices/vaults/backupPolicies', variables('VMBackupSettings')[parameters('env')].backupVaultName, 'EnhancedPolicy')]", "sourceResourceId": "[resourceId(variables('subscriptionId'), variables('VMresourceGroupName'),'Microsoft.Compute/virtualMachines', variables('VMBackupSettings')[parameters('env')].instanceName)]" } } ] }
内容的提问来源于stack exchange,提问作者user19504539
相关产品推荐
相关产品推荐

