Exercício - Desanexar e excluir recursos gerenciados de uma pilha de implantação
O Sprint 3 do novo aplicativo de depósitos está chegando ao fim. A equipe de depósitos solicitou que você desanexasse o Workspace do Log Analytics e a instância do Application Insights da pilha de implantação. Esses recursos precisam continuar existindo no Azure. Além disso, eles solicitaram que o servidor e o banco de dados SQL do Azure fossem excluídos da pilha de implantação e do Azure.
Neste exercício, você vai desanexar e excluir os 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 os recursos da pilha de implantação que precisam continuar existindo no Azure. Em seguida, você deve excluir os recursos da pilha de implantação que não são mais necessários. Por fim, você deve excluir a pilha de implantação, seus recursos gerenciados e o grupo de recursos.
Durante o processo, você
- Modificará o arquivo Bicep para remover o Workspace do Log Analytics e a instância do Application Insights
- Atualizar a pilha de implantação para desanexar os recursos gerenciados
- Validar os recursos gerenciados da pilha de implantação e os recursos desanexados
- Modifique o arquivo Bicep para remover o servidor e o banco de dados SQL do Azure
- Atualizar a pilha de implantação para excluir os recursos gerenciados
- Valide 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.
Modificar o arquivo Bicep para desanexar o Workspace do Log Analytics e a instância do Application Insights
A equipe de depósitos solicitou que desconectássemos o Workspace do Log Analytics e a instância do Application Insights da pilha de implantação. Eles também solicitaram que os recursos continuassem existindo no Azure. Começamos modificando o arquivo Bicep.
Abra o arquivo main.bicep no Visual Studio Code.
Remova o código destacado 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'
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 } }
Salve as alterações no arquivo.
Atualizar 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 Workspace do Log Analytics e a instância do Application Insights sejam desanexados da pilha. Usamos --action-on-unmanage detachAll
para obter esse resultado.
Para atualizar a pilha de implantação, execute o comando a seguir no 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
Você receberá uma mensagem informando que a pilha já existe na assinatura atual. Se o valor do parâmetro action on unmanage for alterado, o aviso alertará você sobre os novos valores. Pressione
y
e, em seguida, “Enter”.
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 Workspace do Log Analytics e a instância do Application Insights sejam desanexados da pilha. Usamos ActionOnUnmanage DetachAll
para obter esse resultado.
Para atualizar a pilha de implantação, execute o comando a seguir no terminal no Visual Studio Code.
Set-AzResourceGroupDeploymentStack ` -Name stack-deposits ` -ResourceGroupName rg-depositsApplication ` -TemplateFile ./main.bicep ` -ActionOnUnmanage DetachAll ` -DenySettingsMode none
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 que a pilha de implantação não está mais gerenciando o Workspace do Log Analytics e a instância do Application Insights.
Para ver a configuração da pilha de implantação, execute o comando a seguir no terminal no Visual Studio Code.
az stack group show \ --resource-group rg-depositsApplication \ --name stack-deposits
Observe a seção
actionOnUnmanage
da saída. Os valores estão todos definidos comodetach
. Esse resultado se deve ao fato de você ter realizado a atualização da pilha de implantação com--action-on-unmanage detachAll
."actionOnUnmanage": { "managementGroups": "detach", "resourceGroups": "detach", "resources": "detach" },
Agora observe a seção de recursos da saída. Não vemos mais o Workspace 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 que a pilha de implantação não está mais gerenciando o Workspace do Log Analytics e a instância do Application Insights.
Para ver a configuração da pilha de implantação, execute o comando a seguir no terminal no Visual Studio Code.
Get-AzResourceGroupDeploymentStack ` -ResourceGroupName rg-depositsApplication ` -Name stack-deposits
Observe os valores de
resourcesCleanupAction
,resourceGroupsCleanupAction
emanagementGroupsCleanupAction
. Os valores estão todos definidos comodetach
. Esse resultado se deve ao fato de você ter realizado a atualização da pilha de implantação com-ActionOnUnmanage DetachAll
.resourcesCleanupAction : detach resourceGroupsCleanupAction : detach managementGroupsCleanupAction : detach
Agora observe a seção de recursos da saída. Não vemos mais o Workspace 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.
Acesse o portal do Azure.
No painel do lado esquerdo, selecione Grupos de recursos.
Selecione rg-depositsApplication.
Se necessário, expanda o menu configurações.
Selecione Estacas de implantação.
Selecione stack-deposits.
Verifique se você tem quatro recursos gerenciados e dois recursos desanexados (Log Analytics e Application Insights).
Modifique o arquivo Bicep para desanexar e excluir o servidor e o banco de dados SQL do Azure
A equipe de depósitos solicitou que desanexássemos e excluíssemos o servidor e o banco de dados SQL do Azure da pilha de implantação e do Azure. Começamos modificando o arquivo Bicep.
Reabra o arquivo main.bicep no Visual Studio Code.
Remova o código destacado 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)}'
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' } }
Salve as alterações no arquivo.
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 e o banco de dados SQL do Azure sejam desanexados da pilha e excluídos do Azure. Usamos --action-on-unmanage deleteAll
para obter esse resultado. Essa ação também exclui o Workspace do Log Analytics e a instância do Application Insights que desconectamos na última seção.
Para atualizar a pilha de implantação, execute o comando a seguir no 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
Você receberá uma mensagem informando que a pilha já existe na assinatura atual. Se o valor do parâmetro action on unmanage for alterado, o aviso alertará você sobre os novos valores. Pressione
y
e, em seguida, “Enter”.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 e o banco de dados SQL do Azure sejam desanexados da pilha e excluídos do Azure. Usamos -ActionOnUnmanage DeleteAll
para fazer isso. Essa ação também exclui o Workspace do Log Analytics e a instância do Application Insights que desconectamos na última seção.
Para atualizar a pilha de implantação, execute o comando a seguir no terminal no Visual Studio Code.
Set-AzResourceGroupDeploymentStack ` -Name stack-deposits ` -ResourceGroupName rg-depositsApplication ` -TemplateFile ./main.bicep ` -ActionOnUnmanage DeleteAll ` -DenySettingsMode none
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 Workspace do Log Analytics, a instância do Application Insights e o servidor e banco de dados SQL do Azure. Também queremos verificar se os recursos foram excluídos do Azure.
Para ver a configuração da pilha de implantação, execute o comando a seguir no terminal no Visual Studio Code.
az stack group show \ --resource-group rg-depositsApplication \ --name stack-deposits
Observe a seção
actionOnUnmanage
da saída. Os valores estão todos definidos comodelete
. Esse resultado se deve ao fato de você ter realizado a atualização da pilha de implantação com--action-on-unmanage deleteAll
."actionOnUnmanage": { "managementGroups": "delete", "resourceGroups": "delete", "resources": "delete" },
Agora observe a seção de recursos da saída. Não vemos mais o servidor e o banco de dados SQL do Azure 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 Workspace do Log Analytics, a instância do Application Insights e o servidor e banco de dados SQL do Azure. Também queremos verificar se os recursos foram excluídos do Azure.
Para ver a configuração da pilha de implantação, execute o comando a seguir no terminal no Visual Studio Code.
Get-AzResourceGroupDeploymentStack ` -ResourceGroupName rg-depositsApplication ` -Name stack-deposits
Observe os valores de
resourcesCleanupAction
,resourceGroupsCleanupAction
emanagementGroupsCleanupAction
. Os valores estão todos definidos comodelete
. Esse resultado se deve ao fato de você ter realizado a atualização da pilha de implantação com-ActionOnUnmanage DeleteAll
.resourcesCleanupAction : delete resourceGroupsCleanupAction : delete managementGroupsCleanupAction : delete
Agora observe a seção de recursos da saída. Não vemos mais o servidor e o banco de dados SQL do Azure como recursos gerenciados.
Resources : /subscriptions/./resourceGroups/rg-depositsApplication/././serverfarms/plan-deposits /subscriptions/./resourceGroups/rg-depositsApplication/././sites/webapp-brpdm7iotbwjm
Retorne ao portal do Azure.
No painel do lado esquerdo, selecione Grupos de recursos.
Selecione rg-depositsApplication.
Se necessário, expanda o menu configurações.
Selecione Estacas de implantação.
Selecione stack-deposits.
Verifique se o plano do serviço de aplicativo e o serviço de aplicativo ainda existem como recursos gerenciados e se nossos outros recursos foram excluídos.
Excluir a implantação de pilha
Para excluir a pilha de implantação e os recursos gerenciados, execute o comando a seguir no terminal no Visual Studio Code.
az stack group delete \ --name stack-deposits \ --resource-group rg-depositsApplication \ --action-on-unmanage deleteAll
Ele solicita que você confirme se deseja excluir a pilha e os recursos especificados.
Após a operação de exclusão, abra o portal do Azure e verifique se a pilha de implantação e os recursos foram removidos.
Para excluir o grupo de recursos usado nesses exercícios, execute o comando a seguir no terminal no Visual Studio Code.
az group delete \ -name rg-depositsApplication
Ele solicita que você confirme se deseja remover o grupo de recursos. Pressione “S” e, em seguida, “Enter”.
Para excluir a pilha de implantação e os recursos gerenciados, execute o comando a seguir no terminal no Visual Studio Code.
Remove-AzResourceGroupDeploymentStack ` -Name stack-deposits ` -ResourceGroupName rg-depositsApplication ` -ActionOnUnmanage DeleteAll
Ele solicita que você confirme se deseja excluir a pilha e os recursos especificados.
Após a operação de exclusão, abra o portal do Azure e verifique se a pilha de implantação e os recursos foram removidos.
Para excluir o grupo de recursos usado nesses exercícios, execute o comando a seguir no terminal no Visual Studio Code.
Remove-AzResourceGroup ` -Name rg-depositsApplication
Ele solicita que você confirme se deseja remover o grupo de recursos. Pressione “S” e, em seguida, “Enter”.
Retorne ao portal do Azure.
No painel do lado esquerdo, selecione Grupos de recursos.
Verifique se o rg-depositsApplication não existe mais.