Exercice : mettre à jour et supprimer une pile de déploiement

Effectué

Vous êtes au sprint 2 pour l’application des nouveaux dépôts. Vous souhaitez tester la mise à jour de la pile de déploiement en définissant une base de données Azure SQL dans le fichier Bicep. Vous voulez vérifier si la pile gère les ressources nouvellement définies.

Dans cet exercice, vous mettez à jour le fichier Bicep que vous avez créé précédemment afin d’y inclure de nouvelles ressources. Vous mettez également à jour et supprimez la pile de déploiement qui gère vos ressources.

  • Mettez à jour le fichier Bicep pour inclure une base de données Azure SQL.
  • Mettez à jour la pile de déploiement pour déployer la nouvelle base de données.
  • Validez les ressources managées de la pile de déploiement.
  • 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.

Mettez à jour le fichier Bicep pour inclure la base de données Azure SQL

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

  2. Ajoutez le code mis en surbrillance à 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)}'
    
    // Variables
    @description('The name of the app service plan.')
    var appServicePlanName = 'plan-deposits'
    
  3. Ajoutez le code suivant au bas du fichier :

    // 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

Une fois le fichier Bicep mis à jour, nous voulons mettre à jour la pile de déploiement afin que la nouvelle base de données Azure SQL soit déployée dans l’environnement en tant que ressource managée.

  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. Vous êtes invité à entrer une valeur pour sqlServerAdminUserName. Créez un nom pour l’administrateur du serveur SQL, suivi de « Entrée. »

    Capture d’écran montrant la ligne de commande Azure CLI qui vous invite à entrer le nom d’utilisateur de l’administrateur du serveur SQL.

  4. Vous êtes invité à entrer une valeur pour sqlServerAdminPassword. Créez un mot de passe complexe pour l’administrateur du serveur SQL, suivi de « Entrée. »

    Capture d’écran montrant la ligne de commande Azure CLI qui vous invite à entrer un mot de passe d’administrateur de serveur SQL.

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

Une fois le fichier Bicep mis à jour, nous voulons mettre à jour la pile de déploiement afin que la nouvelle base de données Azure SQL soit déployée dans l’environnement en tant que ressource managée.

  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. Vous êtes invité à entrer une valeur pour sqlServerAdminUserName. Créez un nom pour l’administrateur du serveur SQL, suivi de « Entrée. »

    Capture d’écran montrant la ligne de commande Azure PowerShell qui vous invite à entrer le nom d’utilisateur de l’administrateur du serveur SQL.

  3. Vous êtes invité à entrer une valeur pour sqlServerAdminPassword. Créez un mot de passe complexe pour l’administrateur du serveur SQL, suivi de « Entrée. »

    Capture d’écran montrant la ligne de commande Azure PowerShell qui vous invite à entrerun mot de passe de l’administrateur du serveur SQL.

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

Vérifiez la mise à jour de la pile de déploiement et les ressources managées

Une fois la mise à jour terminée, nous souhaitons vérifier que la pile de déploiement gère la base de données Azure SQL. 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

Le résultat devrait ressembler à la sortie suivante :

{
  "actionOnUnmanage": {
    "managementGroups": "detach",
    "resourceGroups": "detach",
    "resources": "detach"
  },
  "bypassStackOutOfSyncError": null,
  "correlationId": ".",
  "debugSetting": null,
  "deletedResources": [],
  "denySettings": {
    "applyToChildScopes": false,
    "excludedActions": null,
    "excludedPrincipals": null,
    "mode": "none"
  },
  "deploymentId": "/subscriptions/././rg-depositsApplication/./Microsoft.Resources/deployments/stack-deposits",
  "deploymentScope": null,
  "description": null,
  "detachedResources": [],
  "duration": "PT2M53.2734284S",
  "error": null,
  "failedResources": [],
  "id": "/subscriptions/././rg-depositsApplication/./Microsoft.Resources/deploymentStacks/stack-deposits",
  "location": null,
  "name": "stack-deposits",
  "outputs": null,
  "parameters": {
    "sqlServerAdminPassword": {
      "reference": null,
      "type": "securestring",
      "value": ""
    },
    "sqlServerAdminUserName": {
      "reference": null,
      "type": "string",
      "value": "sqladmin"
    }
  },
  "parametersLink": null,
  "provisioningState": "succeeded",
  "resourceGroup": "rg-depositsApplication",
  "resources": [
    {
      "denyStatus": "none",
      "id": "/subscriptions/././rg-depositsApplication/././servers/sql-eque2jlrboltq",
      "resourceGroup": "rg-depositsApplication",
      "status": "managed"
    },
    {
      "denyStatus": "none",
      "id": "/subscriptions/././rg-depositsApplication/././servers/sql-eque2jlrboltq/databases/sqldb-eque2jlrboltq",
      "resourceGroup": "rg-depositsApplication",
      "status": "managed"
    },
    {
      "denyStatus": "none",
      "id": "/subscriptions/././rg-depositsApplication/././serverfarms/plan-deposits",
      "resourceGroup": "rg-depositsApplication",
      "status": "managed"
    },
    {
      "denyStatus": "none",
      "id": "/subscriptions/./resourceGroups/rg-depositsApplication/././sites/webapp-eque2jlrboltq",
      "resourceGroup": "rg-depositsApplication",
      "status": "managed"
    }
  ],
  "systemData": {
    "createdAt": "2024-01-01T00:00:01.000000+00:00",
    "createdBy": "depositsapplication@contoso.com",
    "createdByType": "User",
    "lastModifiedAt": "2024-01-01T00:00:01.000000+00:00",
    "lastModifiedBy": "depositsapplication@contoso.com",
    "lastModifiedByType": "User"
  },
  "tags": {},
  "template": null,
  "templateLink": null,
  "type": "Microsoft.Resources/deploymentStacks"
}

Notez la section ressources de la sortie. Nous voyons maintenant le serveur SQL et la base de données SQL répertoriés en tant que ressources managées.

Une fois la mise à jour terminée, nous souhaitons vérifier que la pile de déploiement gère la base de données Azure SQL. 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

Le résultat devrait ressembler à la sortie suivante :

Id                            : /subscriptions/././rg-depositsApplication/././deploymentStacks/stack-deposits
Name                          : stack-deposits
ProvisioningState             : succeeded
resourcesCleanupAction        : detach
resourceGroupsCleanupAction   : detach
managementGroupsCleanupAction : detach
CorrelationId                 : .
DenySettingsMode              : none
CreationTime(UTC)             : 1/01/2024 0:00:01 AM
DeploymentId                  : /subscriptions/././rg-depositsApplication/././deployments/stack-deposits
Resources                     : /subscriptions/././rg-depositsApplication/././serverfarms/plan-deposits
                                /subscriptions/././rg-depositsApplication/././sites/webapp-eque2jlrboltq
                                /subscriptions/././rg-depositsApplication/././servers/sql-eque2jlrboltq
                                /subscriptions/././rg-depositsApplication/././servers/sql-eque2jlrboltq/databases/sqldb-eque2jlrboltq
Parameters                    : 
                                Name                      Type                       Value     
                                ========================  =========================  ==========
                                sqlServerAdminUserName    string                     "sqladmin"
                                sqlServerAdminPassword    securestring               ""

Notez la section ressources de la sortie. Nous voyons maintenant le serveur SQL et la base de données SQL répertoriés en tant que 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. Vous êtes invité à 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. Vous êtes invité à 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. Vous êtes invité à 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. Vous êtes invité à 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.