Recursos geridos

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 para o aplicativo de depósitos, você quer saber mais sobre como uma pilha de implantação gerencia recursos. Você espera mudanças rápidas e frequentes no aplicativo à medida que os recursos são testados no desenvolvimento. Antes de adicionar, modificar ou excluir recursos do aplicativo, você precisa saber como esses recursos são gerenciados.

Nesta unidade, você aprende sobre recursos gerenciados e a ação no parâmetro unmanage . Este parâmetro determina como o Azure lida com recursos que a pilha de implantação não gerencia mais.

Compreender os recursos geridos

Antes de começarmos a atualizar pilhas de implantação, vamos dar uma olhada em como uma pilha gerencia recursos. Quando você cria uma pilha de implantação, a pilha 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 no arquivo de modelo de uma 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 possam ser implantados.

As pilhas de implantação podem ser criadas em escopos diferentes, como grupos de recursos, assinaturas e grupos de gerenciamento. Os recursos que uma pilha de implantação pode gerenciar dependem do escopo onde 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á ser 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 excluído do Azure e todos os seus dados são perdidos.

Ação sobre não gerenciar

Você pode controlar como o Azure lida com recursos separados, grupos de recursos e grupos de gerenciamento com uma propriedade conhecida como o parâmetro action on unmanage . 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 da ação no parâmetro unmanage . 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 forem 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

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

  • 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

Nota

Neste módulo, estamos trabalhando com pilhas de implantação com escopo de grupo de recursos. Nessa situação, o grupo de recursos em si não é gerenciado pela pilha. O valor 'excluir tudo' para a ação no parâmetro unmanage não exclui o grupo de recursos onde 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 da CLI az stack group show do Azure com valores definidos para o --action-on-unmanage parâmetro. Observe o comportamento de 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 forem 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

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

  • 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

Nota

Neste módulo, estamos trabalhando com pilhas de implantação com escopo de grupo resrouce. Nessa situação, o grupo de recursos não é gerenciado pela pilha. > O valor 'excluir tudo' para a ação no parâmetro unmanage não dissuade o grupo de recursos onde a pilha existe. É necessário excluir o grupo de recursos depois que a pilha e seus recursos são excluídos.

Vamos dar uma olhada na saída json ao usar o comando Azure PowerShell Get-AzResourceGroupDeploymentStack com valores definidos para o -ActionOnUnmanage parâmetro. Observe o comportamento de 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