Estou tentando criar uma instância gerenciada em uma sub-rede existente no Azure. Configurei a sub-rede com o script fornecido pela Microsoft que me informa que a sub-rede está preparada.
Quando crio a instância gerenciada, recebo
'Falha na validação de implantação. Detalhes adicionais da API subjacente que podem ser úteis: A implantação do modelo falhou devido à violação da política. Por favor, veja os detalhes para mais informações.'
Se eu verificar o log de atividades, vejo
'InvalidTemplateDeployment' e 'Operation name 'deny' Policy action' com algumas informações adicionais na guia JSON, por exemplo, ' 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", "level": "Erro", "operationId": "a12adf73-dd1b-4216 -80df-dea57d514ba1", "operationName": { "value": "Microsoft.Authorization/policies/deny/action", "localizedValue": "'deny' Policy action." '
Nada disso me parece muito útil, como faço para diagnosticar e corrigir esse erro? Será que minha configuração de rede/sub-rede está errada? Permissões? Uma política que precisa especificar instâncias gerenciadas pode ser criada?
Descobri a solução:
Vá para o grupo de recursos no qual você deseja criar a instância gerenciada em > Políticas > Atribuições > Tipos de recursos permitidos (com a assinatura de escopo/nome do grupo de recursos) > então, no menu suspenso Tipos de recursos permitidos, selecione Microsoft.Sql.managedInstances
Saia e entre em sua conta, então a instância gerenciada será implantada.
Quando recebi o erro 'Validate Deployment - 'deny' Policy action', fui para o log de atividades, cliquei no menu suspenso Validate Deployment error, cliquei na ação 'deny' Policy, depois olhei para a guia JSON - se eu olhasse sequencialmente para ver onde o erro se originou eu encontrei esta seção
"resourceId": "/subscriptions/XXXXXXXXX/resourceGroups/XXXXXXX/providers/Microsoft.Sql/managedInstances/minamehere", "status": { "value": "Falha", "localizedValue": "Falha"
Foi isso que me levou às políticas e me permitiu solucionar e corrigir o problema - em algum lugar que eu sabia que precisava adicionar 'Microsoft.Sql/managedInstances' à categoria Política, que se encaixa no erro de política de negação que estava ocorrendo.