Problemas conhecidos para stacks de implantação

Este artigo lista limitações conhecidas e problemas conhecidos para stacks de implementação do Azure, juntamente com soluções alternativas recomendadas quando disponíveis.

Limitações conhecidas

  • Pode criar até 800 stacks de implementação num único âmbito.
  • Podes ter até 2.000 atribuições de negação em qualquer âmbito.
  • A pilha de implantação não gerencia recursos criados implicitamente. Como resultado, não pode usar atribuições de negação ou limpeza para estes recursos.
  • Atribuições de negação não suportam etiquetas.
  • As negativas de atribuições não são suportadas no escopo do grupo de gestão. No entanto, são suportados numa stack de grupo de gestão quando a implementação é apontada para o âmbito da subscrição.
  • As pilhas de implementação não podem eliminar segredos do Key Vault. Se estiveres a remover segredos do Key Vault de um modelo, executa também o comando para atualizar ou eliminar a pilha de implementação no modo de dissociação. As versões mais recentes do Azure PowerShell e do CLI do Azure incluem uma opção para separar recursos não apagáveis, o que previne falhas acidentais.

Problemas conhecidos

  • Eliminar um grupo de recursos contorna as atribuições negativas. As pilhas de implementação criadas ao nível do grupo de recursos não gerem o grupo de recursos principal, porque o grupo de recursos não está definido no ficheiro Bicep. Como resultado, mesmo que a pilha de implementação crie atribuições de negação, ainda podes eliminar o grupo de recursos. A eliminação do grupo de recursos elimina a pilha de implementação e os recursos geridos associados. A orientação recomendada é fazer a implementação no âmbito da subscrição e incluir o grupo de recursos no ficheiro Bicep. Alternativamente, se um bloqueio estiver ativo em qualquer recurso do grupo, a operação de eliminação falha.
  • Mover um recurso gerido remove a sua proteção de stack. As atribuições de negação são avaliadas no âmbito do grupo de recursos para operações Move, e não no âmbito individual do recurso. Como resultado, um recurso pode ser movido para fora do seu grupo de recursos mesmo quando uma atribuição de negação protege esse recurso individual, e as proteções de uma pilha de implementação não se transferem com o recurso depois de este ser movido. O recurso movido já não está protegido pela pilha e pode ser gerido fora do seu limite original. Como mitigação provisória, aplique um bloqueio de apenas leitura no grupo de recursos para bloquear operações de Mover. As operações da stack de implementação continuam a funcionar com o bloqueio só de leitura em vigor — por exemplo, a leitura da stack e a proteção contra eliminação da stack continuam a funcionar. Para atualizar a pilha, retira temporariamente o bloqueio durante a alteração e reaplica-o depois.
  • Uma pilha com escopo de grupo de gestão não pode ser implantada em outro grupo de gestão. Só pode ser implementado para o grupo de gestão da própria pilha, ou para uma subscrição filha.
  • DeleteResourcesAndResourceGroups O valor está a ser removido. A ajuda do comando do Azure PowerShell lista um DeleteResourcesAndResourceGroups valor para o ActionOnUnmanage interruptor. Quando você usa esse valor, o comando desanexa os recursos gerenciados e os grupos de recursos. Este valor será removido numa atualização futura. Não use esse valor.
  • Erro genérico de validação de templates. Em alguns casos, os cmdlets New-* e Set-* do Azure PowerShell podem retornar um erro genérico de validação de modelos que não indica claramente como proceder. Se o erro não estiver claro, reexecute o cmdlet em modo de depuração para ver um erro mais detalhado na resposta bruta.
  • O fornecedor Microsoft Graph não é suportado. O fornecedor Microsoft Graph não suporta stacks de implementação.
  • What-if ainda não está disponível. A operação 'e se ' ainda não é suportada para stacks de implantação.

Lidar com o erro da pilha fora de sincronização

Ao atualizar ou eliminar uma pilha de implantação, pode encontrar um erro de stack-out-of-sync que indica que a lista de recursos da pilha não está corretamente sincronizada:

The deployment stack '{0}' might not have an accurate list of managed resources. To prevent resources from being accidentally deleted, check that the managed resource list doesn't have any additional values. If there is any uncertainty, it's recommended to redeploy the stack with the same template and parameters as the current iteration. To bypass this warning, specify the 'BypassStackOutOfSyncError' flag.

Revise a lista de recursos geridos do portal do Azure, ou reimplemente o ficheiro Bicep atualmente implementado com os mesmos parâmetros para obter a lista de recursos geridos. Depois de verificares a lista, volta a executar o comando com o BypassStackOutOfSyncError switch no Azure PowerShell (ou --bypass-stack-out-of-sync-error no CLI do Azure). Use este interruptor apenas depois de rever cuidadosamente a lista de recursos. Não o uses por defeito.

Passos seguintes