Esercizio: scollegare ed eliminare risorse gestite da uno stack di distribuzione
Lo sprint 3 per la nuova applicazione sui depositi sta per terminare. Il team dei depositi ha chiesto di scollegare l'area di lavoro Log Analytics e l'istanza di Application Insights dallo stack di distribuzione. Queste risorse devono continuare a esistere in Azure. Inoltre, ha chiesto che il server SQL di Azure e il database vengano eliminati dallo stack di distribuzione e da Azure.
In questo esercizio si scollegano e si eliminano le risorse di Azure dallo stack di distribuzione che non sono più necessarie per l'applicazione di depositi. Iniziare scollegando le risorse dallo stack di distribuzione che devono continuare a esistere all'interno di Azure. Eliminare, quindi, le risorse dallo stack di distribuzione che non sono più necessarie. Eliminare, infine, lo stack di distribuzione, le relative risorse gestite e il gruppo di risorse.
Durante il processo, verranno effettuate le operazioni seguenti:
- Modificare il file Bicep per rimuovere l'area di lavoro Log Analytics esistente e la nuova istanza di Application Insights
- Aggiornare lo stack di distribuzione per scollegare le risorse gestite
- Convalidare le risorse gestite dello stack di distribuzione e le risorse scollegate
- Modificare il file Bicep per rimuovere il server SQL di Azure e il database
- Aggiornare lo stack di distribuzione per eliminare le risorse gestite
- Convalidare le risorse gestite dello stack di distribuzione e le risorse eliminate
- Eliminare lo stack di distribuzione e le risorse gestite.
- Convalidare l'eliminazione dello stack di distribuzione e delle risorse gestite.
Modificare il file Bicep per scollegare l'area di lavoro Log Analytics esistente e la nuova istanza di Application Insights
Il team dei depositi ha chiesto di scollegare l'area di lavoro Log Analytics e l'istanza di Application Insights dallo stack di distribuzione. Ha anche chiesto che le risorse continuino a esistere in Azure. Per iniziare, modificare il file Bicep.
Aprire il file main.bicep in Visual Studio Code.
Rimuovere il codice evidenziato dalla sezione delle variabili del file:
// 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'
Rimuovere il codice evidenziato dalla sezione delle risorse del file:
// 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 } }
Salvare le modifiche apportate al file.
Aggiornare lo stack di distribuzione per scollegare le risorse gestite
Dopo aver modificato il file Bicep, si vuole aggiornare lo stack di distribuzione in modo che l'area di lavoro Log Analytics e l'istanza di Application Insights vengano scollegate dallo stack. Per ottenere questo risultato, viene usato --action-on-unmanage detachAll
.
Per aggiornare lo stack di distribuzione, eseguire il comando seguente dal terminale in 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
Viene visualizzato un messaggio che informa che lo stack esiste già nella sottoscrizione corrente. Se il valore dell'azione sul parametro non gestito cambia, l'avviso notifica gli utenti dei nuovi valori. Premere
y
, quindi premere 'INVIO'.
Prima di passare all'attività successiva, attendere il completamento dell'operazione di aggiornamento.
Dopo aver modificato il file Bicep, si vuole aggiornare lo stack di distribuzione in modo che l'area di lavoro Log Analytics e l'istanza di Application Insights vengano scollegate dallo stack. Per ottenere questo risultato, viene usato ActionOnUnmanage DetachAll
.
Per aggiornare lo stack di distribuzione, eseguire il comando seguente dal terminale in Visual Studio Code.
Set-AzResourceGroupDeploymentStack ` -Name stack-deposits ` -ResourceGroupName rg-depositsApplication ` -TemplateFile ./main.bicep ` -ActionOnUnmanage DetachAll ` -DenySettingsMode none
Prima di passare all'attività successiva, attendere il completamento dell'operazione di aggiornamento.
Convalidare le risorse gestite dello stack di distribuzione e le risorse scollegate
Al termine dell'aggiornamento, si vuole verificare che lo stack di distribuzione non gestisca più l'area di lavoro Log Analytics esistente e la nuova istanza di Application Insights.
Per visualizzare la configurazione dello stack di distribuzione, eseguire il comando seguente dal terminale in Visual Studio Code.
az stack group show \ --resource-group rg-depositsApplication \ --name stack-deposits
Prendere nota della sezione
actionOnUnmanage
dell'output. I valori sono tutti impostati sudetach
. Questo risultato è dovuto al fatto che è stato eseguito l'aggiornamento dello stack di distribuzione con--action-on-unmanage detachAll
."actionOnUnmanage": { "managementGroups": "detach", "resourceGroups": "detach", "resources": "detach" },
Ora esaminare la sezione delle risorse dell'output. Non vengono più visualizzate l'area di lavoro Log Analytics esistente e la nuova istanza di Application Insights come risorse gestite.
"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" } ],
Al termine dell'aggiornamento, si vuole verificare che lo stack di distribuzione non gestisca più l'area di lavoro Log Analytics esistente e la nuova istanza di Application Insights.
Per visualizzare la configurazione dello stack di distribuzione, eseguire il comando seguente dal terminale in Visual Studio Code.
Get-AzResourceGroupDeploymentStack ` -ResourceGroupName rg-depositsApplication ` -Name stack-deposits
Osservare i valori per
resourcesCleanupAction
,resourceGroupsCleanupAction
emanagementGroupsCleanupAction
. I valori sono tutti impostati sudetach
. Questo risultato è dovuto al fatto che è stato eseguito l'aggiornamento dello stack di distribuzione con-ActionOnUnmanage DetachAll
.resourcesCleanupAction : detach resourceGroupsCleanupAction : detach managementGroupsCleanupAction : detach
Ora esaminare la sezione delle risorse dell'output. Non vengono più visualizzate l'area di lavoro Log Analytics esistente e la nuova istanza di Application Insights come risorse gestite.
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
Si convalida lo stack di distribuzione nel portale di Azure.
Vai al portale di Azure.
Nel pannello di sinistra selezionare Gruppi di risorse.
Selezionare rg-depositsApplication.
Se necessario, espandere il menu delle impostazioni.
Selezionare Stack di distribuzione.
Selezionare depositi in stack.
Verificare di avere quattro risorse gestite e due risorse scollegate (Log Analytics e Application Insights).
Modificare il file Bicep per scollegare ed eliminare il server SQL di Azure e il database
Il team di depositi ha chiesto di staccare ed eliminare il server SQL di Azure e il database dallo stack di distribuzione e da Azure. Per iniziare, modificare il file Bicep.
Aprire nuovamente il file main.bicep in Visual Studio Code.
Rimuovere il codice evidenziato dalla sezione dei parametri del file:
// 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)}'
Rimuovere il codice evidenziato dalla sezione delle risorse del file:
// 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' } }
Salvare le modifiche apportate al file.
Aggiornare lo stack di distribuzione per eliminare le risorse gestite
Con il file Bicep modificato, si vuole aggiornare lo stack di distribuzione in modo che il server SQL di Azure e il database siano scollegati dallo stack ed eliminati da Azure. Per ottenere questo risultato, viene usato --action-on-unmanage deleteAll
. Questa azione elimina anche l'area di lavoro Log Analytics e l'istanza di Application Insights che è stata scollegata nell'ultima sezione.
Per aggiornare lo stack di distribuzione, eseguire il comando seguente dal terminale in 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
Viene visualizzato un messaggio che informa che lo stack esiste già nella sottoscrizione corrente. Se il valore dell'azione sul parametro non gestito cambia, l'avviso notifica gli utenti dei nuovi valori. Premere
y
, quindi premere 'INVIO'.Prima di passare all'attività successiva, attendere il completamento dell'operazione di aggiornamento.
Con il file Bicep modificato, si vuole aggiornare lo stack di distribuzione in modo che il server SQL di Azure e il database siano scollegati dallo stack ed eliminati da Azure. Per ottenere questo risultato, viene usato -ActionOnUnmanage DeleteAll
. Questa azione elimina anche l'area di lavoro Log Analytics e l'istanza di Application Insights che è stata scollegata nell'ultima sezione.
Per aggiornare lo stack di distribuzione, eseguire il comando seguente dal terminale in Visual Studio Code.
Set-AzResourceGroupDeploymentStack ` -Name stack-deposits ` -ResourceGroupName rg-depositsApplication ` -TemplateFile ./main.bicep ` -ActionOnUnmanage DeleteAll ` -DenySettingsMode none
Prima di passare all'attività successiva, attendere il completamento dell'operazione di aggiornamento.
Convalidare le risorse gestite dello stack di distribuzione
Al termine dell'aggiornamento, si vuole verificare che lo stack di distribuzione non gestisca più l'area di lavoro Log Analytics, l'istanza di Application Insights, e il server SQL di Azure e il database. Si vuole anche verificare che le risorse vengano eliminate da Azure.
Per visualizzare la configurazione dello stack di distribuzione, eseguire il comando seguente dal terminale in Visual Studio Code.
az stack group show \ --resource-group rg-depositsApplication \ --name stack-deposits
Prendere nota della sezione
actionOnUnmanage
dell'output. I valori sono tutti impostati sudelete
. Questo risultato è dovuto al fatto che è stato eseguito l'aggiornamento dello stack di distribuzione con--action-on-unmanage deleteAll
."actionOnUnmanage": { "managementGroups": "delete", "resourceGroups": "delete", "resources": "delete" },
Ora esaminare la sezione delle risorse dell'output. Non vengono più visualizzati il server SQL di Azure e il database come risorse gestite.
"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" } ],
Al termine dell'aggiornamento, si vuole verificare che lo stack di distribuzione non gestisca più l'area di lavoro Log Analytics, l'istanza di Application Insights, e il server SQL di Azure e il database. Si vuole anche verificare che le risorse vengano eliminate da Azure.
Per visualizzare la configurazione dello stack di distribuzione, eseguire il comando seguente dal terminale in Visual Studio Code.
Get-AzResourceGroupDeploymentStack ` -ResourceGroupName rg-depositsApplication ` -Name stack-deposits
Osservare i valori per
resourcesCleanupAction
,resourceGroupsCleanupAction
emanagementGroupsCleanupAction
. I valori sono tutti impostati sudelete
. Questo risultato è dovuto al fatto che è stato eseguito l'aggiornamento dello stack di distribuzione con-ActionOnUnmanage DeleteAll
.resourcesCleanupAction : delete resourceGroupsCleanupAction : delete managementGroupsCleanupAction : delete
Ora esaminare la sezione delle risorse dell'output. Non vengono più visualizzati il server SQL di Azure e il database come risorse gestite.
Resources : /subscriptions/./resourceGroups/rg-depositsApplication/././serverfarms/plan-deposits /subscriptions/./resourceGroups/rg-depositsApplication/././sites/webapp-brpdm7iotbwjm
Tornare al portale di Azure.
Nel pannello di sinistra selezionare Gruppi di risorse.
Selezionare rg-depositsApplication.
Se necessario, espandere il menu delle impostazioni.
Selezionare Stack di distribuzione.
Selezionare depositi in stack.
Verificare che il piano di servizio app e il servizio app esistano ancora come risorse gestite e che le altre risorse vengano eliminate.
Eliminare lo stack di distribuzione
Per eliminare lo stack di distribuzione e le relative risorse gestite, eseguire il comando seguente dal terminale in Visual Studio Code.
az stack group delete \ --name stack-deposits \ --resource-group rg-depositsApplication \ --action-on-unmanage deleteAll
Viene chiesto di confermare se si vuole eliminare lo stack e le risorse specificate.
Al termine dell'operazione di eliminazione, aprire il portale di Azure e verificare che lo stack di distribuzione e le relative risorse siano state rimosse.
Per eliminare il gruppo di risorse usato in questi esercizi, eseguire il comando seguente dal terminale in Visual Studio Code.
az group delete \ -name rg-depositsApplication
Viene chiesto di confermare se si vuole rimuovere il gruppo di risorse. Premere 'Y', quindi premere 'INVIO'.
Per eliminare lo stack di distribuzione e le relative risorse gestite, eseguire il comando seguente dal terminale in Visual Studio Code.
Remove-AzResourceGroupDeploymentStack ` -Name stack-deposits ` -ResourceGroupName rg-depositsApplication ` -ActionOnUnmanage DeleteAll
Viene chiesto di confermare se si vuole eliminare lo stack e le risorse specificate.
Al termine dell'operazione di eliminazione, aprire il portale di Azure e verificare che lo stack di distribuzione e le relative risorse siano state rimosse.
Per eliminare il gruppo di risorse usato in questi esercizi, eseguire il comando seguente dal terminale in Visual Studio Code.
Remove-AzResourceGroup ` -Name rg-depositsApplication
Viene chiesto di confermare se si vuole rimuovere il gruppo di risorse. Premere 'Y', quindi premere 'INVIO'.
Tornare al portale di Azure.
Nel pannello di sinistra selezionare Gruppi di risorse.
Verificare che rg-depositsApplication non esista più.