Exercice - Détacher et supprimer des ressources managées d’une pile de déploiement

Effectué

Sprint 3 pour la nouvelle demande de dépôts est à venir à la fin. L’équipe de dépôts vous a demandé de détacher l’espace de travail Log Analytique et l’instance Application Insights de la pile de déploiement. Ces ressources doivent continuer à exister dans Azure. En outre, ils ont demandé que le serveur et la base de données Azure SQL soient supprimés de la pile de déploiement et d’Azure.

Dans cet exercice, vous détachez et supprimez des ressources Azure de la pile de déploiement qui ne sont plus nécessaires pour l’application de dépôts. Vous commencez par détacher des ressources de la pile de déploiement qui doivent continuer à exister dans Azure. Vous supprimez ensuite les ressources de la pile de déploiement qui ne sont plus nécessaires. Enfin, vous supprimez la pile de déploiement, ses ressources managées et le groupe de ressources.

Pendant ce processus, vous allez

  • Modifiez le fichier Bicep pour supprimer l’espace de travail Log Analytics et l’instance Application Insights
  • Mettre à jour la pile de déploiement pour détacher les ressources managées
  • Valider les ressources managées de la pile de déploiement et les ressources détachées
  • Modifier le fichier Bicep pour supprimer le serveur et la base de données Azure SQL
  • Mettre à jour la pile de déploiement pour détacher les ressources managées
  • Valider les ressources managées de la pile de déploiement et les ressources supprimées
  • Supprimez la pile de déploiement et les ressources managées.
  • Validez la suppression de la pile de déploiement et des ressources managées.

Modifier le fichier Bicep pour détacher l’espace de travail Log Analytics et l’instance Application Insights

L’équipe de dépôts a demandé que nous détachions l’espace de travail Log Analytics et l’instance Application Insights de la pile de déploiement. Ils ont également demandé que les ressources continuent d’exister dans Azure. Nous commençons par modifier le fichier Bicep.

  1. Ouvrez le fichier main.bicep dans Visual Studio Code.

  2. Supprimer le code mis en surbrillance dans la section Variables de votre fichier :

    // 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. Supprimez le code mis en surbrillance dans la section Ressources du fichier :

    // 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. Enregistrez les modifications du fichier.

Mettre à jour la pile de déploiement pour détacher les ressources managées

Avec le fichier Bicep modifié, nous voulons mettre à jour la pile de déploiement afin que l’espace de travail Log Analytics et l’instance Application Insights soient détachés de la pile. Nous utilisons --action-on-unmanage detachAll pour accomplir ce résultat.

  1. Pour mettre à jour la pile de déploiement, exécutez la commande suivante à partir du terminal dans 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. Vous recevez un message qui indique que la pile existe déjà dans l’abonnement actif. Si la valeur de l’action sur un paramètre non géré a changé, l’avertissement vous signale de nouvelles valeurs. Appuyez sur y, suivi de « Entrée ».

    Capture d’écran montrant l’avertissement de ligne de commande Azure CLI qui signale que la pile de déploiement existe déjà.

Attendez que l’opération de mise à jour se termine avant de passer à la tâche suivante.

Avec le fichier Bicep modifié, nous voulons mettre à jour la pile de déploiement afin que l’espace de travail Log Analytics et l’instance Application Insights soient détachés de la pile. Nous utilisons ActionOnUnmanage DetachAll pour accomplir ce résultat.

  1. Pour mettre à jour la pile de déploiement, exécutez la commande suivante à partir du terminal dans Visual Studio Code.

    Set-AzResourceGroupDeploymentStack `
        -Name stack-deposits `
        -ResourceGroupName rg-depositsApplication `
        -TemplateFile ./main.bicep `
        -ActionOnUnmanage DetachAll `
        -DenySettingsMode none
    
  2. Attendez que l’opération de mise à jour se termine avant de passer à la tâche suivante.

Valider les ressources managées de la pile de déploiement et les ressources détachées

Une fois la mise à jour terminée, nous souhaitons vérifier que la pile de déploiement ne gère plus l’espace de travail Log Analytics et l’instance Application Insights.

  1. Pour afficher la configuration de la pile de déploiement, exécutez la commande suivante à partir du terminal dans Visual Studio Code.

    az stack group show \
        --resource-group rg-depositsApplication \
        --name stack-deposits
    
  2. Notez la section de actionOnUnmanage de la sortie. Les valeurs sont toutes définies sur detach. Ce résultat est dû au fait que vous avez effectué la mise à jour de la pile de déploiement avec le --action-on-unmanage detachAll.

    "actionOnUnmanage": {
      "managementGroups": "detach",
      "resourceGroups": "detach",
      "resources": "detach"
    },
    
  3. Examinez maintenant la section ressources de la sortie. Nous ne voyons plus l’espace de travail Log Analytics et l’instance Application Insights en tant que ressources managées.

    "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"
      }
    ],
    

Une fois la mise à jour terminée, nous souhaitons vérifier que la pile de déploiement ne gère plus l’espace de travail Log Analytics et l’instance Application Insights.

  1. Pour afficher la configuration de la pile de déploiement, exécutez la commande suivante à partir du terminal dans Visual Studio Code.

    Get-AzResourceGroupDeploymentStack `
        -ResourceGroupName rg-depositsApplication `
        -Name stack-deposits
    
  2. Notez les valeurs pour resourcesCleanupAction, resourceGroupsCleanupAction et managementGroupsCleanupAction. Les valeurs sont toutes définies sur detach. Ce résultat est dû au fait que vous avez effectué la mise à jour de la pile de déploiement avec le -ActionOnUnmanage DetachAll.

    resourcesCleanupAction        : detach
    resourceGroupsCleanupAction   : detach
    managementGroupsCleanupAction : detach
    
  3. Examinez maintenant la section ressources de la sortie. Nous ne voyons plus l’espace de travail Log Analytics et l’instance Application Insights en tant que ressources managées.

    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
    

Nous allons valider notre pile de déploiement dans le portail Azure.

  1. Accédez au portail Azure.

  2. Dans le volet de gauche, sélectionnez Groupes de ressources.

  3. Sélectionnez rg-depositsApplication.

  4. Si nécessaire, développez le menu paramètres.

  5. Sélectionnez Piles de déploiement.

  6. Sélectionnez stack-deposits.

  7. Vérifiez que vous avez quatre ressources managées et deux ressources détachées (Log Analytics et Application Insights).

    Capture d’écran montrant le portail Azure représentant une pile de déploiement et ses ressources managées et les ressources détachées.

Modifier le fichier Bicep pour détacher et supprimer le serveur et la base de données Azure SQL

L’équipe de dépôts a demandé que nous détachions et supprimions le serveur Azure SQL et la base de données à partir de la pile de déploiement et d’Azure. Nous commençons par modifier le fichier Bicep.

  1. Rouvrez le fichier main.bicep dans Visual Studio Code.

  2. Supprimer le code mis en surbrillance dans la section paramètres de votre fichier :

    // 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. Supprimez le code mis en surbrillance dans la section Ressources du fichier :

    // 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. Enregistrez les modifications du fichier.

Mettre à jour la pile de déploiement pour détacher les ressources managées

Avec le fichier Bicep modifié, nous voulons mettre à jour la pile de déploiement afin que le serveur et la base de données Azure SQL soient détachés de la pile et supprimés d’Azure. Nous utilisons --action-on-unmanage deleteAll pour accomplir ce résultat. Cette action supprime également l’espace de travail Log Analytics et l’instance Application Insights que nous avons détachées dans la dernière section.

  1. Pour mettre à jour la pile de déploiement, exécutez la commande suivante à partir du terminal dans 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. Vous recevez un message qui indique que la pile existe déjà dans l’abonnement actif. Si la valeur de l’action sur un paramètre non géré a changé, l’avertissement vous signale de nouvelles valeurs. Appuyez sur y, suivi de « Entrée ».

    Capture d’écran montrant l’avertissement de ligne de commande Azure CLI qui signale que la pile de déploiement existe déjà.

  3. Attendez que l’opération de mise à jour se termine avant de passer à la tâche suivante.

Avec le fichier Bicep modifié, nous voulons mettre à jour la pile de déploiement afin que le serveur et la base de données Azure SQL soient détachés de la pile et supprimés d’Azure. Nous utilisons -ActionOnUnmanage DeleteAll pour y parvenir. Cette action supprime également l’espace de travail Log Analytics et l’instance Application Insights que nous avons détachées dans la dernière section.

  1. Pour mettre à jour la pile de déploiement, exécutez la commande suivante à partir du terminal dans Visual Studio Code.

    Set-AzResourceGroupDeploymentStack `
        -Name stack-deposits `
        -ResourceGroupName rg-depositsApplication `
        -TemplateFile ./main.bicep `
        -ActionOnUnmanage DeleteAll `
        -DenySettingsMode none
    
  2. Attendez que l’opération de mise à jour se termine avant de passer à la tâche suivante.

Valider les ressources managées de la pile de déploiement

Une fois la mise à jour terminée, nous voulons vérifier que la pile de déploiement ne gère plus l’espace de travail Log Analytics, l’instance Application Insights et le serveur et la base de données Azure SQL. Nous voulons également vérifier que les ressources sont supprimées d’Azure.

  1. Pour afficher la configuration de la pile de déploiement, exécutez la commande suivante à partir du terminal dans Visual Studio Code.

    az stack group show \
        --resource-group rg-depositsApplication \
        --name stack-deposits
    
  2. Notez la section de actionOnUnmanage de la sortie. Les valeurs sont toutes définies sur delete. Ce résultat est dû au fait que vous avez effectué la mise à jour de la pile de déploiement avec le --action-on-unmanage deleteAll.

    "actionOnUnmanage": {
      "managementGroups": "delete",
      "resourceGroups": "delete",
      "resources": "delete"
    },
    
  3. Examinez maintenant la section ressources de la sortie. Nous ne voyons plus le serveur Azure SQL et la base de données comme des ressources managées.

    "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"
      }
    ],
    

Une fois la mise à jour terminée, nous voulons vérifier que la pile de déploiement ne gère plus l’espace de travail Log Analytics, l’instance Application Insights et le serveur et la base de données Azure SQL. Nous voulons également vérifier que les ressources sont supprimées d’Azure.

  1. Pour afficher la configuration de la pile de déploiement, exécutez la commande suivante à partir du terminal dans Visual Studio Code.

    Get-AzResourceGroupDeploymentStack `
        -ResourceGroupName rg-depositsApplication `
        -Name stack-deposits
    
  2. Notez les valeurs pour resourcesCleanupAction, resourceGroupsCleanupAction et managementGroupsCleanupAction. Les valeurs sont toutes définies sur delete. Ce résultat est dû au fait que vous avez effectué la mise à jour de la pile de déploiement avec le -ActionOnUnmanage DeleteAll.

    resourcesCleanupAction        : delete
    resourceGroupsCleanupAction   : delete
    managementGroupsCleanupAction : delete
    
  3. Examinez maintenant la section ressources de la sortie. Nous ne voyons plus le serveur Azure SQL et la base de données comme des ressources managées.

    Resources                     : /subscriptions/./resourceGroups/rg-depositsApplication/././serverfarms/plan-deposits
                                    /subscriptions/./resourceGroups/rg-depositsApplication/././sites/webapp-brpdm7iotbwjm
    
  1. Retournez au Portail Azure.

  2. Dans le volet de gauche, sélectionnez Groupes de ressources.

  3. Sélectionnez rg-depositsApplication.

  4. Si nécessaire, développez le menu paramètres.

  5. Sélectionnez Piles de déploiement.

  6. Sélectionnez stack-deposits.

  7. Vérifiez que le plan App Service et le service d’application existent toujours en tant que ressources managées, et que nos autres ressources sont supprimées.

    Capture d’écran montrant le portail Azure représentant une pile de déploiement et ses deux ressources managées.

Suppression la pile de déploiement

  1. Pour supprimer la pile de déploiement et ses ressources managées, exécutez la commande suivante à partir du terminal dans Visual Studio Code.

    az stack group delete \
        --name stack-deposits \
        --resource-group rg-depositsApplication \
        --action-on-unmanage deleteAll
    
  2. Il vous demande de confirmer si vous souhaitez supprimer la pile et les ressources spécifiées.

    Capture d’écran montrant une confirmation de ligne de commande pour supprimer la pile de déploiement à l’aide d’Azure CLI.

  3. Une fois l’opération de suppression terminée, ouvrez le portail Azure et vérifiez que la pile de déploiement et ses ressources sont bien supprimées.

  4. Pour supprimer le groupe de ressources utilisé dans ces exercices, exécutez la commande suivante à partir du terminal dans Visual Studio Code.

    az group delete \
        -name rg-depositsApplication
    
  5. Il vous demande de confirmer si vous souhaitez supprimer le groupe de ressources. Appuyez sur « Y », suivi de « Entrée ».

    Capture d’écran montrant une confirmation de ligne de commande pour supprimer le groupe de ressources à l’aide d’Azure CLI.

  1. Pour supprimer la pile de déploiement et ses ressources managées, exécutez la commande suivante à partir du terminal dans Visual Studio Code.

    Remove-AzResourceGroupDeploymentStack `
        -Name stack-deposits `
        -ResourceGroupName rg-depositsApplication `
        -ActionOnUnmanage DeleteAll
    
  2. Il vous demande de confirmer si vous souhaitez supprimer la pile et les ressources spécifiées.

    Capture d’écran montrant un message de confirmation de la ligne de commande pour supprimer la pile de déploiement à l’aide d’Azure PowerShell.

  3. Une fois l’opération de suppression terminée, ouvrez le portail Azure et vérifiez que la pile de déploiement et ses ressources sont bien supprimées.

  4. Pour supprimer le groupe de ressources utilisé dans ces exercices, exécutez la commande suivante à partir du terminal dans Visual Studio Code.

    Remove-AzResourceGroup `
        -Name rg-depositsApplication
    
  5. Il vous demande de confirmer si vous souhaitez supprimer le groupe de ressources. Appuyez sur « Y », suivi de « Entrée ».

    Capture d’écran montrant une confirmation de ligne de commande pour supprimer le groupe de ressources à l’aide d’Azure PowerShell.

  1. Retournez au Portail Azure.

  2. Dans le volet de gauche, sélectionnez Groupes de ressources.

  3. Vérifiez que l’application rg-depositsApplication n’existe plus.