Övning – Koppla från och ta bort hanterade resurser från en distributionsstack
Sprint 3 för den nya inlåningsapplikationen är på väg att avslutas. Teamet för inlåning begärde att du skulle koppla från Log Analytics-arbetsytan och Application Insights-instansen från distributionsstacken. Dessa resurser måste fortsätta att finnas i Azure. Dessutom begärde de att Azure SQL-servern och databasen skulle tas bort från distributionsstacken och Azure.
I den här övningen kopplar du bort och tar bort Azure-resurser från distributionsstacken som inte längre behövs för inlåningsprogrammet. Du börjar med att koppla bort resurser från distributionsstacken som måste finnas kvar i Azure. Sedan tar du bort resurser från distributionsstacken som inte längre behövs. Slutligen tar du bort distributionsstacken, dess hanterade resurser och resursgruppen.
Under processen kommer du att
- Ändra Bicep-filen för att ta bort Log Analytics-arbetsytan och Application Insights-instansen
- Uppdatera distributionsstacken för att koppla från de hanterade resurserna
- Verifiera distributionsstackens hanterade resurser och de frånkopplade resurserna
- Ändra Bicep-filen för att ta bort Azure SQL-servern och databasen
- Uppdatera distributionsstacken för att ta bort de hanterade resurserna
- Verifiera distributionsstackens hanterade resurser och de borttagna resurserna
- Ta bort distributionsstacken och hanterade resurser.
- Verifiera borttagningen av distributionsstacken och de hanterade resurserna.
Ändra Bicep-filen för att koppla från Log Analytics-arbetsytan och Application Insights-instansen
Teamet för inlåning begärde att vi skulle koppla från Log Analytics-arbetsytan och Application Insights-instansen från distributionsstacken. De begärde också att resurserna skulle finnas kvar i Azure. Vi börjar med att ändra Bicep-filen.
Öppna filen main.bicep i Visual Studio Code.
Ta bort den markerade koden från avsnittet variabler i filen:
// 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'
Ta bort den markerade koden från resursavsnittet i filen:
// 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 } }
Spara ändringarna i filen.
Uppdatera distributionsstacken för att koppla från de hanterade resurserna
När Bicep-filen har ändrats vill vi uppdatera distributionsstacken så att Log Analytics-arbetsytan och Application Insights-instansen kopplas från stacken. Vi använder --action-on-unmanage detachAll
för att uppnå det här resultatet.
Om du vill uppdatera distributionsstacken kör du följande kommando från terminalen i 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
Du får ett meddelande om att stacken redan finns i den aktuella prenumerationen. Om värdet för åtgärden för ohanterad parameter har ändrats varnar varningen dig om de nya värdena. Tryck på
y
, följt av "Retur".
Vänta tills uppdateringsåtgärden har slutförts innan du går vidare till nästa uppgift.
När Bicep-filen har ändrats vill vi uppdatera distributionsstacken så att Log Analytics-arbetsytan och Application Insights-instansen kopplas från stacken. Vi använder ActionOnUnmanage DetachAll
för att uppnå det här resultatet.
Om du vill uppdatera distributionsstacken kör du följande kommando från terminalen i Visual Studio Code.
Set-AzResourceGroupDeploymentStack ` -Name stack-deposits ` -ResourceGroupName rg-depositsApplication ` -TemplateFile ./main.bicep ` -ActionOnUnmanage DetachAll ` -DenySettingsMode none
Vänta tills uppdateringsåtgärden har slutförts innan du går vidare till nästa uppgift.
Verifiera distributionsstackens hanterade resurser och de frånkopplade resurserna
När uppdateringen är klar vill vi verifiera att distributionsstacken inte längre hanterar Log Analytics-arbetsytan och Application Insights-instansen.
Om du vill visa konfigurationen av distributionsstacken kör du följande kommando från terminalen i Visual Studio Code.
az stack group show \ --resource-group rg-depositsApplication \ --name stack-deposits
Observera avsnittet
actionOnUnmanage
i utdata. Värdena är alla inställda pådetach
. Det här resultatet beror på att du utförde distributionsstackens uppdatering med--action-on-unmanage detachAll
."actionOnUnmanage": { "managementGroups": "detach", "resourceGroups": "detach", "resources": "detach" },
Titta nu på resursavsnittet i utdata. Vi ser inte längre Log Analytics-arbetsytan och Application Insights-instansen som hanterade resurser.
"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" } ],
När uppdateringen är klar vill vi verifiera att distributionsstacken inte längre hanterar Log Analytics-arbetsytan och Application Insights-instansen.
Om du vill visa konfigurationen av distributionsstacken kör du följande kommando från terminalen i Visual Studio Code.
Get-AzResourceGroupDeploymentStack ` -ResourceGroupName rg-depositsApplication ` -Name stack-deposits
Observera värdena för
resourcesCleanupAction
,resourceGroupsCleanupAction
ochmanagementGroupsCleanupAction
. Värdena är alla inställda pådetach
. Det här resultatet beror på att du utförde distributionsstackens uppdatering med-ActionOnUnmanage DetachAll
.resourcesCleanupAction : detach resourceGroupsCleanupAction : detach managementGroupsCleanupAction : detach
Titta nu på resursavsnittet i utdata. Vi ser inte längre Log Analytics-arbetsytan och Application Insights-instansen som hanterade resurser.
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
Nu ska vi verifiera vår distributionsstack i Azure Portal.
Gå till Azure-portalen.
På den vänstra panelen väljer du Resursgrupper.
Välj rg-depositsApplication.
Om det behövs expanderar du inställningsmenyn.
Välj Distributionsstackar.
Välj stackinsättningar.
Kontrollera att du har fyra hanterade resurser och två frånkopplade resurser (Log Analytics och Application Insights).
Ändra Bicep-filen för att koppla från och ta bort Azure SQL-servern och databasen
Teamet för inlåning begärde att vi skulle koppla från och ta bort Azure SQL-servern och databasen från distributionsstacken och Azure. Vi börjar med att ändra Bicep-filen.
Öppna filen main.bicep igen i Visual Studio Code.
Ta bort den markerade koden från avsnittet parametrar i filen:
// 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)}'
Ta bort den markerade koden från resursavsnittet i filen:
// 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' } }
Spara ändringarna i filen.
Uppdatera distributionsstacken för att ta bort de hanterade resurserna
När Bicep-filen har ändrats vill vi uppdatera distributionsstacken så att Azure SQL-servern och databasen kopplas från stacken och tas bort från Azure. Vi använder --action-on-unmanage deleteAll
för att uppnå det här resultatet. Den här åtgärden tar också bort Log Analytics-arbetsytan och Application Insights-instansen som vi tog bort i det sista avsnittet.
Om du vill uppdatera distributionsstacken kör du följande kommando från terminalen i 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
Du får ett meddelande om att stacken redan finns i den aktuella prenumerationen. Om värdet för åtgärden för ohanterad parameter har ändrats varnar varningen dig om de nya värdena. Tryck på
y
, följt av "Retur".Vänta tills uppdateringsåtgärden har slutförts innan du går vidare till nästa uppgift.
När Bicep-filen har ändrats vill vi uppdatera distributionsstacken så att Azure SQL-servern och databasen kopplas från stacken och tas bort från Azure. Vi använder -ActionOnUnmanage DeleteAll
för att åstadkomma detta. Den här åtgärden tar också bort Log Analytics-arbetsytan och Application Insights-instansen som vi tog bort i det sista avsnittet.
Om du vill uppdatera distributionsstacken kör du följande kommando från terminalen i Visual Studio Code.
Set-AzResourceGroupDeploymentStack ` -Name stack-deposits ` -ResourceGroupName rg-depositsApplication ` -TemplateFile ./main.bicep ` -ActionOnUnmanage DeleteAll ` -DenySettingsMode none
Vänta tills uppdateringsåtgärden har slutförts innan du går vidare till nästa uppgift.
Verifiera distributionsstackens hanterade resurser
När uppdateringen är klar vill vi verifiera att distributionsstacken inte längre hanterar Log Analytics-arbetsytan, Application Insights-instansen och Azure SQL-servern och databasen. Vi vill också kontrollera att resurserna tas bort från Azure.
Om du vill visa konfigurationen av distributionsstacken kör du följande kommando från terminalen i Visual Studio Code.
az stack group show \ --resource-group rg-depositsApplication \ --name stack-deposits
Observera avsnittet
actionOnUnmanage
i utdata. Värdena är alla inställda pådelete
. Det här resultatet beror på att du utförde distributionsstackens uppdatering med--action-on-unmanage deleteAll
."actionOnUnmanage": { "managementGroups": "delete", "resourceGroups": "delete", "resources": "delete" },
Titta nu på resursavsnittet i utdata. Vi ser inte längre Azure SQL-servern och databasen som hanterade resurser.
"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" } ],
När uppdateringen är klar vill vi verifiera att distributionsstacken inte längre hanterar Log Analytics-arbetsytan, Application Insights-instansen och Azure SQL-servern och databasen. Vi vill också kontrollera att resurserna tas bort från Azure.
Om du vill visa konfigurationen av distributionsstacken kör du följande kommando från terminalen i Visual Studio Code.
Get-AzResourceGroupDeploymentStack ` -ResourceGroupName rg-depositsApplication ` -Name stack-deposits
Observera värdena för
resourcesCleanupAction
,resourceGroupsCleanupAction
ochmanagementGroupsCleanupAction
. Värdena är alla inställda pådelete
. Det här resultatet beror på att du utförde distributionsstackens uppdatering med-ActionOnUnmanage DeleteAll
.resourcesCleanupAction : delete resourceGroupsCleanupAction : delete managementGroupsCleanupAction : delete
Titta nu på resursavsnittet i utdata. Vi ser inte längre Azure SQL-servern och databasen som hanterade resurser.
Resources : /subscriptions/./resourceGroups/rg-depositsApplication/././serverfarms/plan-deposits /subscriptions/./resourceGroups/rg-depositsApplication/././sites/webapp-brpdm7iotbwjm
Gå tillbaka till Azure-portalen.
På den vänstra panelen väljer du Resursgrupper.
Välj rg-depositsApplication.
Om det behövs expanderar du inställningsmenyn.
Välj Distributionsstackar.
Välj stackinsättningar.
Kontrollera att App Service-planen och App Service fortfarande finns som hanterade resurser och att våra andra resurser tas bort.
Ta bort distributionsstacken
Om du vill ta bort distributionsstacken och dess hanterade resurser kör du följande kommando från terminalen i Visual Studio Code.
az stack group delete \ --name stack-deposits \ --resource-group rg-depositsApplication \ --action-on-unmanage deleteAll
Du uppmanas att bekräfta om du vill ta bort stacken och de angivna resurserna.
När borttagningen har slutförts öppnar du Azure Portal och kontrollerar att distributionsstacken och dess resurser har tagits bort.
Om du vill ta bort resursgruppen som används i de här övningarna kör du följande kommando från terminalen i Visual Studio Code.
az group delete \ -name rg-depositsApplication
Du uppmanas att bekräfta om du vill ta bort resursgruppen. Tryck på 'Y', följt av 'Retur'.
Om du vill ta bort distributionsstacken och dess hanterade resurser kör du följande kommando från terminalen i Visual Studio Code.
Remove-AzResourceGroupDeploymentStack ` -Name stack-deposits ` -ResourceGroupName rg-depositsApplication ` -ActionOnUnmanage DeleteAll
Du uppmanas att bekräfta om du vill ta bort stacken och de angivna resurserna.
När borttagningen har slutförts öppnar du Azure Portal och kontrollerar att distributionsstacken och dess resurser har tagits bort.
Om du vill ta bort resursgruppen som används i de här övningarna kör du följande kommando från terminalen i Visual Studio Code.
Remove-AzResourceGroup ` -Name rg-depositsApplication
Du uppmanas att bekräfta om du vill ta bort resursgruppen. Tryck på 'Y', följt av 'Retur'.
Gå tillbaka till Azure-portalen.
På den vänstra panelen väljer du Resursgrupper.
Kontrollera att rg-depositsApplication inte längre finns.