Exercício - Desanexar e excluir recursos gerenciados de uma pilha de implantação
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.
Abra o arquivo main.bicep no Visual Studio Code.
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'
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 } }
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.
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
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'.
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.
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
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.
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
Tome nota da
actionOnUnmanage
secção da saída. Os valores estão todos definidos comodetach
. 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" },
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.
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
Tome nota dos valores de
resourcesCleanupAction
,resourceGroupsCleanupAction
emanagementGroupsCleanupAction
. Os valores estão todos definidos comodetach
. Esse resultado ocorre porque você executou a atualização da pilha de implantação com o-ActionOnUnmanage DetachAll
.resourcesCleanupAction : detach resourceGroupsCleanupAction : detach managementGroupsCleanupAction : detach
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.
Aceda ao portal do Azure.
No painel esquerdo, selecione Grupos de recursos.
Selecione rg-depositsApplication.
Se necessário, expanda o menu de configurações .
Selecione Pilhas de implantação.
Selecione depósitos de pilha.
Verifique se você tem quatro recursos gerenciados e dois recursos desanexados (Log Analytics e Application Insights).
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.
Reabra o arquivo main.bicep no Visual Studio Code.
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)}'
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' } }
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.
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
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'.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.
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
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.
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
Tome nota da
actionOnUnmanage
secção da saída. Os valores estão todos definidos comodelete
. 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" },
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.
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
Tome nota dos valores de
resourcesCleanupAction
,resourceGroupsCleanupAction
emanagementGroupsCleanupAction
. Os valores estão todos definidos comodelete
. Esse resultado ocorre porque você executou a atualização da pilha de implantação com o-ActionOnUnmanage DeleteAll
.resourcesCleanupAction : delete resourceGroupsCleanupAction : delete managementGroupsCleanupAction : delete
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
Regresse ao portal do Azure.
No painel esquerdo, selecione Grupos de recursos.
Selecione rg-depositsApplication.
Se necessário, expanda o menu de configurações .
Selecione Pilhas de implantação.
Selecione depósitos de pilha.
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.
Excluir a pilha de implantação
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
Ele solicita que você confirme se deseja excluir a pilha e os recursos especificados.
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.
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
Ele solicita que você confirme se deseja remover o grupo de recursos. Pressione 'Y', seguido de 'Enter'.
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
Ele solicita que você confirme se deseja excluir a pilha e os recursos especificados.
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.
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
Ele solicita que você confirme se deseja remover o grupo de recursos. Pressione 'Y', seguido de 'Enter'.
Regresse ao portal do Azure.
No painel esquerdo, selecione Grupos de recursos.
Verifique se o rg-depositsApplication não existe mais.