Exercício - Desanexar e excluir recursos gerenciados de uma pilha de implantação

Concluído

O Sprint 3 para a nova aplicação de depósitos está a chegar ao fim. A equipe de depósitos solicitou que você desanexasse o espaço de trabalho do Log Analytics e a instância do Application Insights da pilha de implantação. Esses recursos precisam continuar a existir no Azure. Além disso, eles solicitaram que o servidor SQL do Azure e o banco de dados fossem excluídos da pilha de implantação e do Azure.

Neste exercício, você desanexa e exclui recursos do Azure da pilha de implantação que não são mais necessários para o aplicativo de depósitos. Você começa desanexando recursos da pilha de implantação que precisam continuar a existir no Azure. Em seguida, exclua recursos da pilha de implantação que não são mais necessários. Finalmente, você exclui a pilha de implantação, seus recursos gerenciados e o grupo de recursos.

Durante o processo, você

  • Modificar o arquivo Bicep para remover o espaço de trabalho do Log Analytics e a instância do Application Insights
  • Atualize a pilha de implantação para desanexar os recursos gerenciados
  • Validar os recursos gerenciados da pilha de implantação e os recursos desanexados
  • Modificar o arquivo Bicep para remover o servidor SQL do Azure e o banco de dados
  • Atualizar a pilha de implantação para excluir os recursos gerenciados
  • Validar os recursos gerenciados da pilha de implantação e os recursos excluídos
  • Exclua a pilha de implantação e os recursos gerenciados.
  • Valide a exclusão da pilha de implantação e dos recursos gerenciados.

Modifique o arquivo Bicep para desanexar o espaço de trabalho do Log Analytics e a instância do Application Insights

A equipe de depósitos solicitou que desanexássemos o espaço de trabalho do Log Analytics e a instância do Application Insights da pilha de implantação. Eles também solicitaram que os recursos continuassem a existir no Azure. Começamos modificando o arquivo Bicep.

  1. Abra o arquivo main.bicep no Visual Studio Code.

  2. Remova o código realçado da seção de variáveis do seu arquivo:

    // Variables
    @description('The name of the Application Insights instance.')
    var applicationInsightsName = 'appinsights-deposits'
    
    @description('The name of the app service plan.')
    var appServicePlanName = 'plan-deposits'
    
    @description('The name of the Log Analytics Workspace.')
    var logAnalyticsWorkspaceName = 'log-deposits'
    
  3. Remova o código realçado da seção de recursos do arquivo:

    // Resource - App Service Plan
    resource appServicePlan 'Microsoft.Web/serverfarms@2023-12-01' = {
      name: appServicePlanName
      location: location
      sku: {
        name: 'S1'
        capacity: 1
      }
    }
    
    // Resource - Web App
    resource webApplication 'Microsoft.Web/sites@2023-12-01' = {
      name: webApplicationName
      location: location
      properties: {
        serverFarmId: appServicePlan.id
        siteConfig: {
          appSettings: [
            {
              name: 'APPINSIGHTS_INSTRUMENTATIONKEY'
              value: applicationInsights.properties.InstrumentationKey
            }     
          ]
        }    
      }
    }
    
    // Resource - SQL Server
    resource sqlServer 'Microsoft.Sql/servers@2021-11-01' ={
      name: sqlServerName
      location: location
      properties: {
        administratorLogin: sqlServerAdminUserName
        administratorLoginPassword: sqlServerAdminPassword
      }
    }
    
    // Resource - SQL Database
    resource sqlServerDatabase 'Microsoft.Sql/servers/databases@2021-11-01' = {
      parent: sqlServer
      name: sqlDatabaseName
      location: location
      sku: {
        name: 'Standard'
        tier: 'Standard'
      }
    }
    
    // Resource - Log Analytics Workspace
    resource logAnalyticsWorkspace 'Microsoft.OperationalInsights/workspaces@2023-09-01' = {
      name: logAnalyticsWorkspaceName
      location: location
      properties: {
        retentionInDays: 30
        sku: {
          name: 'PerGB2018'
        }
      }
    }
    
    // Resource - Application Insights
    resource applicationInsights 'Microsoft.Insights/components@2020-02-02' = {
      name: applicationInsightsName
      location: location
      kind: 'web'
      properties: {
        Application_Type: 'web'
        WorkspaceResourceId: logAnalyticsWorkspace.id
      }
    }
    
  4. Guarde as alterações ao ficheiro.

Atualize a pilha de implantação para desanexar os recursos gerenciados

Com o arquivo Bicep modificado, queremos atualizar a pilha de implantação para que o espaço de trabalho do Log Analytics e a instância do Application Insights sejam desanexados da pilha. Usamos --action-on-unmanage detachAll para alcançar este resultado.

  1. Para atualizar a pilha de implantação, execute o seguinte comando do terminal no Visual Studio Code.

    az stack group create \
        --name stack-deposits \
        --resource-group 'rg-depositsApplication' \
        --template-file ./main.bicep \
        --action-on-unmanage detachAll \
        --deny-settings-mode none
    
  2. Você recebe uma mensagem informando que a pilha já existe na assinatura atual. Se o valor da ação no parâmetro unmanage for alterado, o aviso alertará você sobre os novos valores. Pressione y, seguido de 'Enter'.

    Uma captura de tela mostrando a linha de comando da CLI do Azure avisando que a pilha de implantação já existe.

Aguarde a conclusão da operação de atualização antes de passar para a próxima tarefa.

Com o arquivo Bicep modificado, queremos atualizar a pilha de implantação para que o espaço de trabalho do Log Analytics e a instância do Application Insights sejam desanexados da pilha. Usamos ActionOnUnmanage DetachAll para alcançar este resultado.

  1. Para atualizar a pilha de implantação, execute o seguinte comando do terminal no Visual Studio Code.

    Set-AzResourceGroupDeploymentStack `
        -Name stack-deposits `
        -ResourceGroupName rg-depositsApplication `
        -TemplateFile ./main.bicep `
        -ActionOnUnmanage DetachAll `
        -DenySettingsMode none
    
  2. Aguarde a conclusão da operação de atualização antes de passar para a próxima tarefa.

Validar os recursos gerenciados da pilha de implantação e os recursos desanexados

Com a atualização concluída, queremos validar se a pilha de implantação não está mais gerenciando o espaço de trabalho do Log Analytics e a instância do Application Insights.

  1. Para exibir a configuração da pilha de implantação, execute o seguinte comando do terminal no Visual Studio Code.

    az stack group show \
        --resource-group rg-depositsApplication \
        --name stack-deposits
    
  2. Tome nota da actionOnUnmanage secção da saída. Os valores estão todos definidos como detach. Esse resultado ocorre porque você executou a atualização da pilha de implantação com o --action-on-unmanage detachAll.

    "actionOnUnmanage": {
      "managementGroups": "detach",
      "resourceGroups": "detach",
      "resources": "detach"
    },
    
  3. Agora olhe para a seção de recursos da saída. Não vemos mais o espaço de trabalho do Log Analytics e a instância do Application Insights como recursos gerenciados.

    "resources": [
      {
        "denyStatus": "none",
        "id": "/subscriptions/./resourceGroups/rg-depositsApplication/././servers/sql-brpdm7iotbwjm",
        "resourceGroup": "rg-depositsApplication",
        "status": "managed"
      },
      {
        "denyStatus": "none",
        "id": "/subscriptions/./resourceGroups/rg-depositsApplication/././servers/sql-brpdm7iotbwjm/databases/sqldb-brpdm7iotbwjm",
        "resourceGroup": "rg-depositsApplication",
        "status": "managed"
      },
      {
        "denyStatus": "none",
        "id": "/subscriptions/./resourceGroups/rg-depositsApplication/././serverfarms/plan-deposits",
        "resourceGroup": "rg-depositsApplication",
        "status": "managed"
      },
      {
        "denyStatus": "none",
        "id": "/subscriptions/./resourceGroups/rg-depositsApplication/././sites/webapp-brpdm7iotbwjm",
        "resourceGroup": "rg-depositsApplication",
        "status": "managed"
      }
    ],
    

Com a atualização concluída, queremos validar se a pilha de implantação não está mais gerenciando o espaço de trabalho do Log Analytics e a instância do Application Insights.

  1. Para exibir a configuração da pilha de implantação, execute o seguinte comando do terminal no Visual Studio Code.

    Get-AzResourceGroupDeploymentStack `
        -ResourceGroupName rg-depositsApplication `
        -Name stack-deposits
    
  2. Tome nota dos valores de resourcesCleanupAction, resourceGroupsCleanupActione managementGroupsCleanupAction. Os valores estão todos definidos como detach. Esse resultado ocorre porque você executou a atualização da pilha de implantação com o -ActionOnUnmanage DetachAll.

    resourcesCleanupAction        : detach
    resourceGroupsCleanupAction   : detach
    managementGroupsCleanupAction : detach
    
  3. Agora olhe para a seção de recursos da saída. Não vemos mais o espaço de trabalho do Log Analytics e a instância do Application Insights como recursos gerenciados.

    Resources                     : /subscriptions/./resourceGroups/rg-depositsApplication/././servers/sql-brpdm7iotbwjm
                                    /subscriptions/./resourceGroups/rg-depositsApplication/././servers/sql-brpdm7iotbwjm/databases/sqldb-brpdm7iotbwjm
                                    /subscriptions/./resourceGroups/rg-depositsApplication/././serverfarms/plan-deposits
                                    /subscriptions/./resourceGroups/rg-depositsApplication/././sites/webapp-brpdm7iotbwjm
    

Vamos validar nossa pilha de implantação no portal do Azure.

  1. Aceda ao portal do Azure.

  2. No painel esquerdo, selecione Grupos de recursos.

  3. Selecione rg-depositsApplication.

  4. Se necessário, expanda o menu de configurações .

  5. Selecione Pilhas de implantação.

  6. Selecione depósitos de pilha.

  7. Verifique se você tem quatro recursos gerenciados e dois recursos desanexados (Log Analytics e Application Insights).

    Uma captura de tela mostrando o portal do Azure representando uma pilha de implantação e seus recursos gerenciados e recursos desanexados.

Modificar o arquivo Bicep para desanexar e excluir o servidor SQL do Azure e o banco de dados

A equipe de depósitos solicitou que desanexássemos e excluíssemos o servidor SQL do Azure e o banco de dados da pilha de implantação e do Azure. Começamos modificando o arquivo Bicep.

  1. Reabra o arquivo main.bicep no Visual Studio Code.

  2. Remova o código realçado da seção de parâmetros do seu arquivo:

    // Parameters
    @description('The location for all resources.')
    param location string = 'eastus'
    
    @description('The name of the SQL database.')
    param sqlDatabaseName string = 'sqldb-${uniqueString(resourceGroup().id)}'
    
    @description('The password of the admin user.')
    param sqlServerAdminUserName string
    
    @description('The name of the admin user.')
    @secure()
    param sqlServerAdminPassword string
    
    @description('The name of the SQL server.')
    param sqlServerName string = 'sql-${uniqueString(resourceGroup().id)}'
    
    @description('The name of the web application.')
    param webApplicationName string = 'webapp-${uniqueString(resourceGroup().id)}'
    
  3. Remova o código realçado da seção de recursos do arquivo:

    // Resource - App Service Plan
    resource appServicePlan 'Microsoft.Web/serverfarms@2023-12-01' = {
      name: appServicePlanName
      location: location
      sku: {
        name: 'S1'
        capacity: 1
      }
    }
    
    // Resource - Web App
    resource webApplication 'Microsoft.Web/sites@2023-12-01' = {
      name: webApplicationName
      location: location
      properties: {
        serverFarmId: appServicePlan.id
      }
    }
    
    // Resource - SQL Server
    resource sqlServer 'Microsoft.Sql/servers@2021-11-01' ={
      name: sqlServerName
      location: location
      properties: {
        administratorLogin: sqlServerAdminUserName
        administratorLoginPassword: sqlServerAdminPassword
      }
    }
    
    // Resource - SQL Database
    resource sqlServerDatabase 'Microsoft.Sql/servers/databases@2021-11-01' = {
      parent: sqlServer
      name: sqlDatabaseName
      location: location
      sku: {
        name: 'Standard'
        tier: 'Standard'
      }
    }
    
  4. Guarde as alterações ao ficheiro.

Atualizar a pilha de implantação para excluir os recursos gerenciados

Com o arquivo Bicep modificado, queremos atualizar a pilha de implantação para que o servidor SQL do Azure e o banco de dados sejam desanexados da pilha e excluídos do Azure. Usamos --action-on-unmanage deleteAll para alcançar este resultado. Essa ação também exclui o espaço de trabalho do Log Analytics e a instância do Application Insights que separamos na última seção.

  1. Para atualizar a pilha de implantação, execute o seguinte comando do terminal no Visual Studio Code.

    az stack group create \
        --name stack-deposits \
        --resource-group rg-depositsApplication \
        --template-file ./main.bicep \
        --action-on-unmanage deleteAll \
        --deny-settings-mode none
    
  2. Você recebe uma mensagem informando que a pilha já existe na assinatura atual. Se o valor da ação no parâmetro unmanage for alterado, o aviso alertará você sobre os novos valores. Pressione y, seguido de 'Enter'.

    Uma captura de tela mostrando a linha de comando da CLI do Azure avisando que a pilha de implantação já existe.

  3. Aguarde a conclusão da operação de atualização antes de passar para a próxima tarefa.

Com o arquivo Bicep modificado, queremos atualizar a pilha de implantação para que o servidor SQL do Azure e o banco de dados sejam desanexados da pilha e excluídos do Azure. Nós usamos -ActionOnUnmanage DeleteAll para conseguir isso. Essa ação também exclui o espaço de trabalho do Log Analytics e a instância do Application Insights que separamos na última seção.

  1. Para atualizar a pilha de implantação, execute o seguinte comando do terminal no Visual Studio Code.

    Set-AzResourceGroupDeploymentStack `
        -Name stack-deposits `
        -ResourceGroupName rg-depositsApplication `
        -TemplateFile ./main.bicep `
        -ActionOnUnmanage DeleteAll `
        -DenySettingsMode none
    
  2. Aguarde a conclusão da operação de atualização antes de passar para a próxima tarefa.

Validar os recursos gerenciados da pilha de implantação

Com a atualização concluída, queremos validar se a pilha de implantação não está mais gerenciando o espaço de trabalho do Log Analytics, a instância do Application Insights e o servidor e o banco de dados SQL do Azure. Também queremos verificar se os recursos são excluídos do Azure.

  1. Para exibir a configuração da pilha de implantação, execute o seguinte comando do terminal no Visual Studio Code.

    az stack group show \
        --resource-group rg-depositsApplication \
        --name stack-deposits
    
  2. Tome nota da actionOnUnmanage secção da saída. Os valores estão todos definidos como delete. Esse resultado ocorre porque você executou a atualização da pilha de implantação com o --action-on-unmanage deleteAll.

    "actionOnUnmanage": {
      "managementGroups": "delete",
      "resourceGroups": "delete",
      "resources": "delete"
    },
    
  3. Agora olhe para a seção de recursos da saída. Não vemos mais o servidor SQL do Azure e o banco de dados como recursos gerenciados.

    "resources": [
      {
        "denyStatus": "none",
        "id": "/subscriptions/./resourceGroups/rg-depositsApplication/././serverfarms/plan-deposits",
        "resourceGroup": "rg-depositsApplication",
        "status": "managed"
      },
      {
        "denyStatus": "none",
        "id": "/subscriptions/./resourceGroups/rg-depositsApplication/././sites/webapp-brpdm7iotbwjm",
        "resourceGroup": "rg-depositsApplication",
        "status": "managed"
      }
    ],
    

Com a atualização concluída, queremos validar se a pilha de implantação não está mais gerenciando o espaço de trabalho do Log Analytics, a instância do Application Insights e o servidor e o banco de dados SQL do Azure. Também queremos verificar se os recursos são excluídos do Azure.

  1. Para exibir a configuração da pilha de implantação, execute o seguinte comando do terminal no Visual Studio Code.

    Get-AzResourceGroupDeploymentStack `
        -ResourceGroupName rg-depositsApplication `
        -Name stack-deposits
    
  2. Tome nota dos valores de resourcesCleanupAction, resourceGroupsCleanupActione managementGroupsCleanupAction. Os valores estão todos definidos como delete. Esse resultado ocorre porque você executou a atualização da pilha de implantação com o -ActionOnUnmanage DeleteAll.

    resourcesCleanupAction        : delete
    resourceGroupsCleanupAction   : delete
    managementGroupsCleanupAction : delete
    
  3. Agora olhe para a seção de recursos da saída. Não vemos mais o servidor SQL do Azure e o banco de dados como recursos gerenciados.

    Resources                     : /subscriptions/./resourceGroups/rg-depositsApplication/././serverfarms/plan-deposits
                                    /subscriptions/./resourceGroups/rg-depositsApplication/././sites/webapp-brpdm7iotbwjm
    
  1. Regresse ao portal do Azure.

  2. No painel esquerdo, selecione Grupos de recursos.

  3. Selecione rg-depositsApplication.

  4. Se necessário, expanda o menu de configurações .

  5. Selecione Pilhas de implantação.

  6. Selecione depósitos de pilha.

  7. Verifique se o plano de serviço de aplicativo e o serviço de aplicativo ainda existem como recursos gerenciados, e nossos outros recursos são excluídos.

    Uma captura de tela mostrando o portal do Azure representando uma pilha de implantação e seus dois recursos gerenciados.

Excluir a pilha de implantação

  1. Para excluir a pilha de implantação e seus recursos gerenciados, execute o seguinte comando do terminal no Visual Studio Code.

    az stack group delete \
        --name stack-deposits \
        --resource-group rg-depositsApplication \
        --action-on-unmanage deleteAll
    
  2. Ele solicita que você confirme se deseja excluir a pilha e os recursos especificados.

    Uma captura de tela mostrando uma confirmação de linha de comando para excluir a pilha de implantação usando a CLI do Azure.

  3. Após a conclusão da operação de exclusão, abra o portal do Azure e verifique se a pilha de implantação e seus recursos foram removidos.

  4. Para excluir o grupo de recursos usado nesses exercícios, execute o seguinte comando do terminal no Visual Studio Code.

    az group delete \
        -name rg-depositsApplication
    
  5. Ele solicita que você confirme se deseja remover o grupo de recursos. Pressione 'Y', seguido de 'Enter'.

    Uma captura de tela mostrando uma confirmação de linha de comando para excluir o grupo de recursos usando a CLI do Azure.

  1. Para excluir a pilha de implantação e seus recursos gerenciados, execute o seguinte comando do terminal no Visual Studio Code.

    Remove-AzResourceGroupDeploymentStack `
        -Name stack-deposits `
        -ResourceGroupName rg-depositsApplication `
        -ActionOnUnmanage DeleteAll
    
  2. Ele solicita que você confirme se deseja excluir a pilha e os recursos especificados.

    Uma captura de tela mostrando uma confirmação de linha de comando para excluir a pilha de implantação usando o Azure PowerShell.

  3. Após a conclusão da operação de exclusão, abra o portal do Azure e verifique se a pilha de implantação e seus recursos foram removidos.

  4. Para excluir o grupo de recursos usado nesses exercícios, execute o seguinte comando do terminal no Visual Studio Code.

    Remove-AzResourceGroup `
        -Name rg-depositsApplication
    
  5. Ele solicita que você confirme se deseja remover o grupo de recursos. Pressione 'Y', seguido de 'Enter'.

    Uma captura de tela mostrando uma confirmação de linha de comando para excluir o grupo de recursos usando o Azure PowerShell.

  1. Regresse ao portal do Azure.

  2. No painel esquerdo, selecione Grupos de recursos.

  3. Verifique se o rg-depositsApplication não existe mais.