Recursos gerenciados

Concluído

Os recursos do Azure gerenciados por uma pilha de implantação são chamados de recursos gerenciados. Os recursos são definidos no arquivo de modelo usado na criação da pilha.

Ao se preparar para o próximo sprint do aplicativo de depósitos, é importante saber mais sobre como uma pilha de implantação gerencia recursos. Você espera alterações rápidas e frequentes no aplicativo à medida que os recursos são testados no desenvolvimento. Antes de você adicionar, modificar ou excluir recursos do aplicativo, você precisa entender como esses recursos são gerenciados.

Nesta unidade, você aprenderá sobre recursos gerenciados e o parâmetro ação ao deixar de gerenciar. Esse parâmetro determina como o Azure lida com os recursos que a pilha de implantação não gerencia mais.

Entenda os recursos gerenciados

Antes de começarmos a atualizar as pilhas de implantação, vamos dar uma olhada em como uma pilha gerencia recursos. Quando você cria uma pilha de implantação, ela se torna responsável por gerenciar os recursos descritos no arquivo de modelo. Esses recursos são conhecidos como recursos gerenciados. Desde que um recurso seja definido em um arquivo de modelo da pilha de implantação, ele é considerado um recurso gerenciado. Pense nas pilhas de implantação como uma série de ponteiros que agrupam os recursos do seu aplicativo em uma única unidade lógica, independentemente de onde esses recursos estejam implantados.

As pilhas de implantação podem ser criadas em diferentes escopos, como grupos de recursos, assinaturas e grupos de gerenciamento. Os recursos que uma pilha de implantação pode gerenciar dependem do escopo em que a pilha é criada. Por exemplo, se você implantar uma pilha no escopo de uma assinatura, a pilha poderá gerenciar grupos de recursos dentro da assinatura, bem como recursos em qualquer grupo de recursos dentro dessa mesma assinatura.

Um gráfico que representa uma pilha de implantação e recursos gerenciados.

O que acontece com um recurso que não é mais gerenciado pela pilha de implantação? Se um recurso não estiver mais definido em um arquivo de modelo e a pilha for atualizada, o recurso poderá se tornar desanexado ou excluído. Um recurso desanexado é um recurso que não é mais gerenciado pela pilha, mas o recurso continua a existir no Azure. Um recurso excluído é um recurso que é excluído do Azure e todos os seus dados são perdidos.

Ação ao deixar de gerenciar

Você pode controlar como o Azure lida com recursos desanexados, grupos de recursos e grupos de gerenciamento com uma propriedade conhecida como o parâmetro ação ao deixar de gerenciar. Esse parâmetro pode ser definido ao criar, modificar ou excluir uma pilha de implantação.

Todas as três operações têm a capacidade de definir o comportamento do parâmetro ação ao deixar de gerenciar. Lembre-se de que o valor definido mais recentemente tem precedência.

Por exemplo, se uma pilha de implantação for criada com o parâmetro definido como --action-on-unmanage detachAll, o Azure desanexará todos os recursos que não são mais gerenciados pela pilha. Se uma operação de atualização subsequente for executada e o parâmetro for definido como --action-on-unmanage deleteAll, o comportamento padrão será deleteAll.

Há três valores possíveis para o parâmetro --action-on-unmanage:

  • deleteAll - exclui recursos, grupos de recursos e grupos de gerenciamento
  • deleteResources - exclui recursos, mas desanexa grupos de recursos e grupos de gerenciamento
  • detachAll - desanexa todos os recursos, grupos de recursos e grupos de gerenciamento

Observação

Neste módulo, estamos trabalhando com pilhas de implantação com escopo de grupo de recursos. Nessa situação, o próprio grupo de recursos não é gerenciado pela pilha. O valor “excluir tudo” para o parâmetro ação ao deixar de gerenciar não exclui o grupo de recursos em que a pilha existe. Você precisa excluir o grupo de recursos depois que a pilha e seus recursos forem excluídos.

Vamos dar uma olhada na saída JSON ao usar o comando az stack group show da CLI do Azure com valores definidos para o parâmetro --action-on-unmanage. Observe o comportamento dos recursos, grupos de recursos e grupos de gerenciamento.

  1. --action-on-unmanage deleteAll

    "actionOnUnmanage": {
        "managementGroups": "delete",
        "resourceGroups": "delete",
        "resources": "delete"
    },
    
  2. --action-on-unmanage deleteResources

    "actionOnUnmanage": {
        "managementGroups": "detach",
        "resourceGroups": "detach",
        "resources": "delete"
    },
    
  3. --action-on-unmanage detachAll

    "actionOnUnmanage": {
        "managementGroups": "detach",
        "resourceGroups": "detach",
        "resources": "detach"
    },
    

Por exemplo, se uma pilha de implantação for criada com o parâmetro definido como -ActionOnUnmanage DetachAll, o Azure desanexará todos os recursos que não são mais gerenciados pela pilha. Se uma operação de atualização subsequente for executada e o parâmetro for definido como -ActionOnUnmanage DeleteAll, o comportamento padrão será DeleteAll.

Há três valores possíveis para o parâmetro -ActionOnUnmanage:

  • DeleteAll - exclui recursos, grupos de recursos e grupos de gerenciamento
  • DeleteResources - exclui recursos, mas desanexa grupos de recursos e grupos de gerenciamento
  • DetachAll - desanexa todos os recursos, grupos de recursos e grupos de gerenciamento

Observação

Neste módulo, estamos trabalhando com pilhas de implantação com escopo de grupo de redirecionamento. Nessa situação, o grupo de recursos não é gerenciado pela pilha. > O valor “excluir tudo” para o parâmetro ação ao deixar de gerenciar não exclui o grupo de recursos onde a pilha existe. É necessário excluir o grupo de recursos depois que a pilha e seus recursos forem excluídos.

Vamos dar uma olhada na saída json ao usar o comando Get-AzResourceGroupDeploymentStack do Azure PowerShell com valores definidos para o parâmetro -ActionOnUnmanage. Observe o comportamento dos recursos, grupos de recursos e grupos de gerenciamento.

  1. -ActionOnUnmanage DeleteAll

    resourcesCleanupAction        : delete
    resourceGroupsCleanupAction   : delete
    managementGroupsCleanupAction : delete
    
  2. -ActionOnUnmanage DeleteResources

    resourcesCleanupAction        : delete
    resourceGroupsCleanupAction   : detach
    managementGroupsCleanupAction : detach
    
  3. -ActionOnUnmanage DetachAll

    resourcesCleanupAction        : detach
    resourceGroupsCleanupAction   : detach
    managementGroupsCleanupAction : detach