我正在尝试在 Azure 的现有子网中创建托管实例。我已经使用Microsoft 提供的脚本配置了子网,它告诉我子网已准备好。
当我创建托管实例时,我得到
'部署验证失败。来自底层 API 的其他可能有用的详细信息:模板部署因违反策略而失败。请参阅详细信息以获取更多信息。
如果我检查活动日志,我会看到
'InvalidTemplateDeployment' 和 'Operation name 'deny' Policy action' 以及 JSON 选项卡下的一些进一步信息,例如' eventTimestamp": "2019-10-30T10:22:16.9421982Z", "id": "/subscriptions/xx/resourceGroups /xx/providers/Microsoft.Sql/managedInstances/xx-sqlmi/events/23572bf7-dbbb-4ba0-a13e-075a8ae58652/ticks/637080277369421982”,“级别”:“错误”,“操作ID”:“a12adf73-dd1b-4216 -80df-dea57d514ba1", "operationName": { "value": "Microsoft.Authorization/policies/deny/action", "localizedValue": "'deny' 策略操作。" '
在我看来,这些都不是很有帮助,我该如何诊断和修复这个错误?是我的网络/子网配置错误吗?权限?可以创建需要指定托管实例的策略吗?
想出了解决办法:
转到要在 > 策略 > 分配 > 允许的资源类型(使用范围订阅/资源组名称)参数 > 中创建托管实例的资源组 > 然后从允许的资源类型下拉列表中选择 Microsoft.Sql.managedInstances
注销并登录您的帐户,然后将部署托管实例。
当我收到“验证部署 - '拒绝'策略操作”错误时,我转到活动日志,单击“验证部署”错误下拉菜单,单击“拒绝”策略操作,然后查看 JSON 选项卡 - 如果我按顺序查看错误的来源我找到了这个部分
"resourceId": "/subscriptions/XXXXXXXXX/resourceGroups/XXXXXXX/providers/Microsoft.Sql/managedInstances/minamehere", "status": { "value": "Failed", "localizedValue": "Failed"
这就是导致我制定策略并允许我排除故障并解决问题的原因 - 我知道我需要将“Microsoft.Sql/managedInstances”添加到策略类别中,这符合我遇到的拒绝策略错误。