Exercice - Détacher et supprimer des ressources managées d’une pile de déploiement
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.
Ouvrez le fichier main.bicep dans Visual Studio Code.
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'
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 } }
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.
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
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 ».
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.
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
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.
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
Notez la section de
actionOnUnmanage
de la sortie. Les valeurs sont toutes définies surdetach
. 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" },
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.
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
Notez les valeurs pour
resourcesCleanupAction
,resourceGroupsCleanupAction
etmanagementGroupsCleanupAction
. Les valeurs sont toutes définies surdetach
. 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
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.
Accédez au portail Azure.
Dans le volet de gauche, sélectionnez Groupes de ressources.
Sélectionnez rg-depositsApplication.
Si nécessaire, développez le menu paramètres.
Sélectionnez Piles de déploiement.
Sélectionnez stack-deposits.
Vérifiez que vous avez quatre ressources managées et deux ressources détachées (Log Analytics et Application Insights).
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.
Rouvrez le fichier main.bicep dans Visual Studio Code.
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)}'
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' } }
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.
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
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 ».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.
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
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.
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
Notez la section de
actionOnUnmanage
de la sortie. Les valeurs sont toutes définies surdelete
. 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" },
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.
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
Notez les valeurs pour
resourcesCleanupAction
,resourceGroupsCleanupAction
etmanagementGroupsCleanupAction
. Les valeurs sont toutes définies surdelete
. 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
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
Retournez au Portail Azure.
Dans le volet de gauche, sélectionnez Groupes de ressources.
Sélectionnez rg-depositsApplication.
Si nécessaire, développez le menu paramètres.
Sélectionnez Piles de déploiement.
Sélectionnez stack-deposits.
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.
Suppression la pile de déploiement
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
Il vous demande de confirmer si vous souhaitez supprimer la pile et les ressources spécifiées.
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.
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
Il vous demande de confirmer si vous souhaitez supprimer le groupe de ressources. Appuyez sur « Y », suivi de « Entrée ».
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
Il vous demande de confirmer si vous souhaitez supprimer la pile et les ressources spécifiées.
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.
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
Il vous demande de confirmer si vous souhaitez supprimer le groupe de ressources. Appuyez sur « Y », suivi de « Entrée ».
Retournez au Portail Azure.
Dans le volet de gauche, sélectionnez Groupes de ressources.
Vérifiez que l’application rg-depositsApplication n’existe plus.