Esercizio: scollegare ed eliminare risorse gestite da uno stack di distribuzione

Completato

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.

  1. Aprire il file main.bicep in Visual Studio Code.

  2. 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'
    
  3. 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
      }
    }
    
  4. 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.

  1. 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
    
  2. 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'.

    Screenshot che mostra l'avviso della riga di comando dell'interfaccia della riga di comando di Azure che indica che lo stack di distribuzione esiste già.

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.

  1. 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
    
  2. 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.

  1. 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
    
  2. Prendere nota della sezione actionOnUnmanage dell'output. I valori sono tutti impostati su detach. 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"
    },
    
  3. 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.

  1. 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
    
  2. Osservare i valori per resourcesCleanupAction, resourceGroupsCleanupAction e managementGroupsCleanupAction. I valori sono tutti impostati su detach. Questo risultato è dovuto al fatto che è stato eseguito l'aggiornamento dello stack di distribuzione con -ActionOnUnmanage DetachAll.

    resourcesCleanupAction        : detach
    resourceGroupsCleanupAction   : detach
    managementGroupsCleanupAction : detach
    
  3. 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.

  1. Vai al portale di Azure.

  2. Nel pannello di sinistra selezionare Gruppi di risorse.

  3. Selezionare rg-depositsApplication.

  4. Se necessario, espandere il menu delle impostazioni.

  5. Selezionare Stack di distribuzione.

  6. Selezionare depositi in stack.

  7. Verificare di avere quattro risorse gestite e due risorse scollegate (Log Analytics e Application Insights).

    Screenshot che mostra il portale di Azure che rappresenta uno stack di distribuzione e le relative risorse gestite e le risorse scollegate.

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.

  1. Aprire nuovamente il file main.bicep in Visual Studio Code.

  2. 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)}'
    
  3. 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'
      }
    }
    
  4. 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.

  1. 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
    
  2. 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'.

    Screenshot che mostra l'avviso della riga di comando dell'interfaccia della riga di comando di Azure che indica che lo stack di distribuzione esiste già.

  3. 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.

  1. 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
    
  2. 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.

  1. 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
    
  2. Prendere nota della sezione actionOnUnmanage dell'output. I valori sono tutti impostati su delete. 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"
    },
    
  3. 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.

  1. 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
    
  2. Osservare i valori per resourcesCleanupAction, resourceGroupsCleanupAction e managementGroupsCleanupAction. I valori sono tutti impostati su delete. Questo risultato è dovuto al fatto che è stato eseguito l'aggiornamento dello stack di distribuzione con -ActionOnUnmanage DeleteAll.

    resourcesCleanupAction        : delete
    resourceGroupsCleanupAction   : delete
    managementGroupsCleanupAction : delete
    
  3. 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
    
  1. Tornare al portale di Azure.

  2. Nel pannello di sinistra selezionare Gruppi di risorse.

  3. Selezionare rg-depositsApplication.

  4. Se necessario, espandere il menu delle impostazioni.

  5. Selezionare Stack di distribuzione.

  6. Selezionare depositi in stack.

  7. Verificare che il piano di servizio app e il servizio app esistano ancora come risorse gestite e che le altre risorse vengano eliminate.

    Screenshot che mostra il portale di Azure che rappresenta uno stack di distribuzione e le relative due risorse gestite.

Eliminare lo stack di distribuzione

  1. 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
    
  2. Viene chiesto di confermare se si vuole eliminare lo stack e le risorse specificate.

    Screenshot che mostra una conferma della riga di comando per eliminare lo stack di distribuzione usando l'interfaccia della riga di comando di Azure.

  3. 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.

  4. 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
    
  5. Viene chiesto di confermare se si vuole rimuovere il gruppo di risorse. Premere 'Y', quindi premere 'INVIO'.

    Screenshot che mostra una conferma della riga di comando per eliminare il gruppo di risorse usando l'interfaccia della riga di comando di Azure.

  1. 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
    
  2. Viene chiesto di confermare se si vuole eliminare lo stack e le risorse specificate.

    Screenshot che mostra una conferma della riga di comando per eliminare lo stack di distribuzione usando Azure PowerShell.

  3. 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.

  4. 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
    
  5. Viene chiesto di confermare se si vuole rimuovere il gruppo di risorse. Premere 'Y', quindi premere 'INVIO'.

    Screenshot che mostra una conferma della riga di comando per eliminare il gruppo di risorse usando Azure PowerShell.

  1. Tornare al portale di Azure.

  2. Nel pannello di sinistra selezionare Gruppi di risorse.

  3. Verificare che rg-depositsApplication non esista più.