Ćwiczenie — odłączanie i usuwanie zasobów zarządzanych ze stosu wdrożenia
Sprint 3 dla nowej aplikacji depozytów zbliża się do końca. Zespół ds. depozytów zażądał odłączenia obszaru roboczego usługi Log Analytics i wystąpienia usługi Application Insights od stosu wdrożenia. Te zasoby muszą nadal istnieć na platformie Azure. Ponadto zażądali usunięcia serwera i bazy danych Azure SQL ze stosu wdrożenia i platformy Azure.
W tym ćwiczeniu odłączysz i usuniesz zasoby platformy Azure ze stosu wdrożenia, który nie jest już potrzebny dla aplikacji depozytów. Zacznij od odłączenia zasobów od stosu wdrożenia, który musi nadal istnieć na platformie Azure. Następnie usuwasz zasoby ze stosu wdrażania, które nie są już potrzebne. Na koniec usuniesz stos wdrożenia, jego zarządzane zasoby i grupę zasobów.
Podczas tego procesu będziesz
- Zmodyfikuj plik Bicep, aby usunąć obszar roboczy usługi Log Analytics i wystąpienie usługi Application Insights
- Aktualizowanie stosu wdrożenia w celu odłączenia zarządzanych zasobów
- Weryfikowanie zasobów zarządzanych stosu wdrożenia i odłączonych zasobów
- Modyfikowanie pliku Bicep w celu usunięcia serwera i bazy danych Azure SQL
- Aktualizowanie stosu wdrożenia w celu usunięcia zarządzanych zasobów
- Weryfikowanie zasobów zarządzanych stosu wdrożenia i usuniętych zasobów
- Usuń stos wdrożenia i zarządzane zasoby.
- Zweryfikuj usunięcie stosu wdrożenia i zarządzanych zasobów.
Modyfikowanie pliku Bicep w celu odłączenia obszaru roboczego usługi Log Analytics i wystąpienia usługi Application Insights
Zespół ds. depozytów zażądał odłączenia obszaru roboczego usługi Log Analytics i wystąpienia usługi Application Insights od stosu wdrożenia. Zażądali również, aby zasoby nadal istniały na platformie Azure. Zaczynamy od zmodyfikowania pliku Bicep.
Otwórz plik main.bicep w programie Visual Studio Code.
Usuń wyróżniony kod z sekcji zmiennych pliku:
// 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'
Usuń wyróżniony kod z sekcji zasobów pliku:
// 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 } }
Zapisz zmiany w pliku.
Aktualizowanie stosu wdrożenia w celu odłączenia zarządzanych zasobów
Po zmodyfikowaniu pliku Bicep chcemy zaktualizować stos wdrożenia, aby obszar roboczy usługi Log Analytics i wystąpienie usługi Application Insights zostały odłączone od stosu. Służymy --action-on-unmanage detachAll
do osiągnięcia tego wyniku.
Aby zaktualizować stos wdrożenia, uruchom następujące polecenie z poziomu terminalu w programie 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
Zostanie wyświetlony komunikat z informacją, że stos już istnieje w bieżącej subskrypcji. Jeśli wartość akcji dla parametru niezarządzanego została zmieniona, ostrzeżenie ostrzega o nowych wartościach. Naciśnij
y
, a następnie Enter.
Poczekaj na zakończenie operacji aktualizacji przed przejściem do następnego zadania.
Po zmodyfikowaniu pliku Bicep chcemy zaktualizować stos wdrożenia, aby obszar roboczy usługi Log Analytics i wystąpienie usługi Application Insights zostały odłączone od stosu. Służymy ActionOnUnmanage DetachAll
do osiągnięcia tego wyniku.
Aby zaktualizować stos wdrożenia, uruchom następujące polecenie z poziomu terminalu w programie Visual Studio Code.
Set-AzResourceGroupDeploymentStack ` -Name stack-deposits ` -ResourceGroupName rg-depositsApplication ` -TemplateFile ./main.bicep ` -ActionOnUnmanage DetachAll ` -DenySettingsMode none
Poczekaj na zakończenie operacji aktualizacji przed przejściem do następnego zadania.
Weryfikowanie zasobów zarządzanych stosu wdrożenia i odłączonych zasobów
Po zakończeniu aktualizacji chcemy sprawdzić, czy stos wdrożenia nie zarządza już obszarem roboczym usługi Log Analytics i wystąpieniem usługi Application Insights.
Aby wyświetlić konfigurację stosu wdrażania, uruchom następujące polecenie w terminalu w programie Visual Studio Code.
az stack group show \ --resource-group rg-depositsApplication \ --name stack-deposits
Zwróć uwagę na sekcję
actionOnUnmanage
danych wyjściowych. Wszystkie wartości są ustawione nadetach
. Ten wynik jest spowodowany wykonaniem aktualizacji stosu wdrożenia za pomocą polecenia--action-on-unmanage detachAll
."actionOnUnmanage": { "managementGroups": "detach", "resourceGroups": "detach", "resources": "detach" },
Teraz przyjrzyj się sekcji zasobów danych wyjściowych. Obszar roboczy usługi Log Analytics i wystąpienie usługi Application Insights nie są już widoczne jako zasoby zarządzane.
"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" } ],
Po zakończeniu aktualizacji chcemy sprawdzić, czy stos wdrożenia nie zarządza już obszarem roboczym usługi Log Analytics i wystąpieniem usługi Application Insights.
Aby wyświetlić konfigurację stosu wdrażania, uruchom następujące polecenie w terminalu w programie Visual Studio Code.
Get-AzResourceGroupDeploymentStack ` -ResourceGroupName rg-depositsApplication ` -Name stack-deposits
Zwróć uwagę na wartości ,
resourcesCleanupAction
resourceGroupsCleanupAction
imanagementGroupsCleanupAction
. Wszystkie wartości są ustawione nadetach
. Ten wynik jest spowodowany wykonaniem aktualizacji stosu wdrożenia za pomocą polecenia-ActionOnUnmanage DetachAll
.resourcesCleanupAction : detach resourceGroupsCleanupAction : detach managementGroupsCleanupAction : detach
Teraz przyjrzyj się sekcji zasobów danych wyjściowych. Obszar roboczy usługi Log Analytics i wystąpienie usługi Application Insights nie są już widoczne jako zasoby zarządzane.
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
Zweryfikujmy nasz stos wdrożenia w witrynie Azure Portal.
Przejdź do portalu Azure Portal.
Na panelu po lewej stronie wybierz pozycję Grupy zasobów.
Wybierz pozycję rg-depositsApplication.
W razie potrzeby rozwiń menu ustawień .
Wybierz pozycję Stosy wdrożenia.
Wybierz pozycję stack-deposits.
Sprawdź, czy masz cztery zasoby zarządzane i dwa odłączone zasoby (Log Analytics i Application Insights).
Modyfikowanie pliku Bicep w celu odłączenia i usunięcia serwera i bazy danych Azure SQL
Zespół ds. depozytów zażądał odłączenia i usunięcia serwera i bazy danych Azure SQL z stosu wdrożenia i platformy Azure. Zaczynamy od zmodyfikowania pliku Bicep.
Otwórz ponownie plik main.bicep w programie Visual Studio Code.
Usuń wyróżniony kod z sekcji parameters pliku:
// 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)}'
Usuń wyróżniony kod z sekcji zasobów pliku:
// 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' } }
Zapisz zmiany w pliku.
Aktualizowanie stosu wdrożenia w celu usunięcia zarządzanych zasobów
Po zmodyfikowaniu pliku Bicep chcemy zaktualizować stos wdrożenia, aby serwer i baza danych azure SQL zostały odłączone od stosu i usunięte z platformy Azure. Służymy --action-on-unmanage deleteAll
do osiągnięcia tego wyniku. Ta akcja powoduje również usunięcie obszaru roboczego usługi Log Analytics i wystąpienia usługi Application Insights, które odłączyliśmy w ostatniej sekcji.
Aby zaktualizować stos wdrożenia, uruchom następujące polecenie z poziomu terminalu w programie 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
Zostanie wyświetlony komunikat z informacją, że stos już istnieje w bieżącej subskrypcji. Jeśli wartość akcji dla parametru niezarządzanego została zmieniona, ostrzeżenie ostrzega o nowych wartościach. Naciśnij
y
, a następnie Enter.Poczekaj na zakończenie operacji aktualizacji przed przejściem do następnego zadania.
Po zmodyfikowaniu pliku Bicep chcemy zaktualizować stos wdrożenia, aby serwer i baza danych azure SQL zostały odłączone od stosu i usunięte z platformy Azure. Służymy -ActionOnUnmanage DeleteAll
do tego celu. Ta akcja powoduje również usunięcie obszaru roboczego usługi Log Analytics i wystąpienia usługi Application Insights, które odłączyliśmy w ostatniej sekcji.
Aby zaktualizować stos wdrożenia, uruchom następujące polecenie z poziomu terminalu w programie Visual Studio Code.
Set-AzResourceGroupDeploymentStack ` -Name stack-deposits ` -ResourceGroupName rg-depositsApplication ` -TemplateFile ./main.bicep ` -ActionOnUnmanage DeleteAll ` -DenySettingsMode none
Poczekaj na zakończenie operacji aktualizacji przed przejściem do następnego zadania.
Weryfikowanie zarządzanych zasobów stosu wdrożenia
Po zakończeniu aktualizacji chcemy sprawdzić, czy stos wdrożenia nie zarządza już obszarem roboczym usługi Log Analytics, wystąpieniem usługi Application Insights i serwerem Azure SQL i bazą danych. Chcemy również sprawdzić, czy zasoby zostały usunięte z platformy Azure.
Aby wyświetlić konfigurację stosu wdrażania, uruchom następujące polecenie w terminalu w programie Visual Studio Code.
az stack group show \ --resource-group rg-depositsApplication \ --name stack-deposits
Zwróć uwagę na sekcję
actionOnUnmanage
danych wyjściowych. Wszystkie wartości są ustawione nadelete
. Ten wynik jest spowodowany wykonaniem aktualizacji stosu wdrożenia za pomocą polecenia--action-on-unmanage deleteAll
."actionOnUnmanage": { "managementGroups": "delete", "resourceGroups": "delete", "resources": "delete" },
Teraz przyjrzyj się sekcji zasobów danych wyjściowych. Serwer Azure SQL i baza danych nie są już widoczne jako zasoby zarządzane.
"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" } ],
Po zakończeniu aktualizacji chcemy sprawdzić, czy stos wdrożenia nie zarządza już obszarem roboczym usługi Log Analytics, wystąpieniem usługi Application Insights i serwerem Azure SQL i bazą danych. Chcemy również sprawdzić, czy zasoby zostały usunięte z platformy Azure.
Aby wyświetlić konfigurację stosu wdrażania, uruchom następujące polecenie w terminalu w programie Visual Studio Code.
Get-AzResourceGroupDeploymentStack ` -ResourceGroupName rg-depositsApplication ` -Name stack-deposits
Zwróć uwagę na wartości ,
resourcesCleanupAction
resourceGroupsCleanupAction
imanagementGroupsCleanupAction
. Wszystkie wartości są ustawione nadelete
. Ten wynik jest spowodowany wykonaniem aktualizacji stosu wdrożenia za pomocą polecenia-ActionOnUnmanage DeleteAll
.resourcesCleanupAction : delete resourceGroupsCleanupAction : delete managementGroupsCleanupAction : delete
Teraz przyjrzyj się sekcji zasobów danych wyjściowych. Serwer Azure SQL i baza danych nie są już widoczne jako zasoby zarządzane.
Resources : /subscriptions/./resourceGroups/rg-depositsApplication/././serverfarms/plan-deposits /subscriptions/./resourceGroups/rg-depositsApplication/././sites/webapp-brpdm7iotbwjm
Wróć do witryny Azure Portal.
Na panelu po lewej stronie wybierz pozycję Grupy zasobów.
Wybierz pozycję rg-depositsApplication.
W razie potrzeby rozwiń menu ustawień .
Wybierz pozycję Stosy wdrożenia.
Wybierz pozycję stack-deposits.
Sprawdź, czy plan usługi App Service i usługa App Service nadal istnieją jako zasoby zarządzane, a nasze inne zasoby są usuwane.
Usuwanie stosu wdrożenia
Aby usunąć stos wdrożenia i jego zasoby zarządzane, uruchom następujące polecenie w terminalu w programie Visual Studio Code.
az stack group delete \ --name stack-deposits \ --resource-group rg-depositsApplication \ --action-on-unmanage deleteAll
Zostanie wyświetlony monit o potwierdzenie, czy chcesz usunąć stos i określone zasoby.
Po zakończeniu operacji usuwania otwórz witrynę Azure Portal i sprawdź, czy stos wdrożenia i jego zasoby zostaną usunięte.
Aby usunąć grupę zasobów używaną w tych ćwiczeniach, uruchom następujące polecenie z poziomu terminalu w programie Visual Studio Code.
az group delete \ -name rg-depositsApplication
Zostanie wyświetlony monit o potwierdzenie, czy chcesz usunąć grupę zasobów. Naciśnij "Y", a następnie "Enter".
Aby usunąć stos wdrożenia i jego zasoby zarządzane, uruchom następujące polecenie w terminalu w programie Visual Studio Code.
Remove-AzResourceGroupDeploymentStack ` -Name stack-deposits ` -ResourceGroupName rg-depositsApplication ` -ActionOnUnmanage DeleteAll
Zostanie wyświetlony monit o potwierdzenie, czy chcesz usunąć stos i określone zasoby.
Po zakończeniu operacji usuwania otwórz witrynę Azure Portal i sprawdź, czy stos wdrożenia i jego zasoby zostaną usunięte.
Aby usunąć grupę zasobów używaną w tych ćwiczeniach, uruchom następujące polecenie z poziomu terminalu w programie Visual Studio Code.
Remove-AzResourceGroup ` -Name rg-depositsApplication
Zostanie wyświetlony monit o potwierdzenie, czy chcesz usunąć grupę zasobów. Naciśnij "Y", a następnie "Enter".
Wróć do witryny Azure Portal.
Na panelu po lewej stronie wybierz pozycję Grupy zasobów.
Sprawdź, czy rg-depositsApplication już nie istnieje.