Exercice - Créer et fusionner une branche

Effectué

De retour dans la société de jouets, vos développeurs de sites Web envisagent d’ajouter une nouvelle base de données Azure Cosmos DB pour stocker les données relatives aux jouets vendus par l’entreprise. Les développeurs vous ont demandé de mettre à jour le code Bicep pour ajouter les ressources Cosmos DB. Toutefois, ils ne sont pas encore prêts à effectuer les modifications. Ils souhaitent simplement que les modifications soient prêtes lorsqu’ils auront terminé les modifications.

Dans cet exercice, vous allez ajouter un nouveau module Bicep dans une branche de votre référentiel. Pendant ce processus, vous allez :

  • Créez une branche et basculez vers celle-ci.
  • Changez votre code Bicep sur la branche.
  • Revenez à votre branche principale.
  • Fusionnez votre branche dans main.

Créer et extraire une branche dans votre référentiel

  1. À l’aide du terminal Visual Studio Code, exécutez la commande suivante pour créer et extraire une nouvelle branche :

    git checkout -b add-database
    
  2. Exécutez la commande suivante pour vérifier l’état de votre référentiel :

    git status
    

    Le résultat ressemble à l’exemple qui suit :

    On branch add-database
    nothing to commit, working tree clean
    

    La première ligne de la sortie indique que Git se trouve sur la branche Add-Database.

  3. Dans Visual Studio Code, regardez la barre d’état en bas à gauche de la fenêtre. Notez que le nom de la branche est devenu add-database.

    Comme pour les autres commandes Git que vous avez exécutées, Visual Studio Code reste à jour avec les modifications apportées à votre référentiel Git, y compris lorsque vous extrayez une branche.

Mettre à jour un fichier sur votre branche

Maintenant que vous avez créé une branche, vous allez ajouter un nouveau module Bicep pour le compte Azure Cosmos DB de votre site Web.

  1. Dans le sous-dossier modules du dossier deploy, créez un fichier nommé cosmos-db.bicep.

  2. Ouvrez et enregistrez le fichier app-service.bicep vide afin que Visual Studio Code charge les outils Bicep.

  3. Copiez le code suivant dans Cosmos-DB.bicep :

    @description('The Azure region into which the resources should be deployed.')
    param location string
    
    @description('The type of environment. This must be nonprod or prod.')
    @allowed([
      'nonprod'
      'prod'
    ])
    param environmentType string
    
    @description('The name of the Cosmos DB account. This name must be globally unique.')
    param cosmosDBAccountName string
    
    var cosmosDBDatabaseName = 'ProductCatalog'
    var cosmosDBDatabaseThroughput = (environmentType == 'prod') ? 1000 : 400
    var cosmosDBContainerName = 'Products'
    var cosmosDBContainerPartitionKey = '/productid'
    
    resource cosmosDBAccount 'Microsoft.DocumentDB/databaseAccounts@2024-05-15' = {
      name: cosmosDBAccountName
      location: location
      properties: {
        databaseAccountOfferType: 'Standard'
        locations: [
          {
            locationName: location
          }
        ]
      }
    }
    
    resource cosmosDBDatabase 'Microsoft.DocumentDB/databaseAccounts/sqlDatabases@2024-05-15' = {
      parent: cosmosDBAccount
      name: cosmosDBDatabaseName
      properties: {
        resource: {
          id: cosmosDBDatabaseName
        }
        options: {
          throughput: cosmosDBDatabaseThroughput
        }
      }
    
      resource container 'containers' = {
        name: cosmosDBContainerName
        properties: {
          resource: {
            id: cosmosDBContainerName
            partitionKey: {
              kind: 'Hash'
              paths: [
                cosmosDBContainerPartitionKey
              ]
            }
          }
          options: {}
        }
      }
    }
    
  4. Enregistrez et fermez le fichier Cosmos-DB.bicep.

  5. Ouvrez le fichier main.bicep.

  6. Ajoutez les définitions de paramètres suivantes sous la appServiceAppName définition du paramètre :

    @description('The name of the Cosmos DB account. This name must be globally unique.')
    param cosmosDBAccountName string = 'toyweb-${uniqueString(resourceGroup().id)}'
    
  7. Ajoutez la définition de module suivante sous la appService définition de module :

    module cosmosDB 'modules/cosmos-db.bicep' = {
      name: 'cosmos-db'
      params: {
        location: location
        environmentType: environmentType
        cosmosDBAccountName: cosmosDBAccountName
      }
    }
    
  8. Enregistrez et fermez le fichier main.bicep.

Passer en revue les différences et valider les modifications

Après avoir passé en revue les différences de fichier, indexez et commitez vos changements. Vous pouvez choisir d’utiliser l’interface CLI Git ou Visual Studio Code pour valider les fichiers. Cet exemple utilise l’interface CLI Git.

  1. En utilisant le Contrôle de code Source dans Visual Studio Code, examinez les différences entre les deux fichiers.

    Notez les lignes modifiées mises en surbrillance dans le fichier main.bicep.

  2. Passez en revue les fichiers prêts à commiter.

    git status
    

    La sortie ressemble à l’exemple suivant.

    On branch add-database
     Changes not staged for commit:
       (use "git add <file>..." to update what will be committed)
       (use "git restore <file>..." to discard changes in working directory)
             modified:   deploy/main.bicep
    
     Untracked files:
       (use "git add <file>..." to include in what will be committed)
             deploy/modules/cosmos-db.bicep
    
     no changes added to commit (use "git add" and/or "git commit -a")
    
  3. Indexez les changements des deux fichiers.

    git add .
    

    Le point (.) indexe tous les fichiers qui ont été changés.

  4. Validez les modifications :

    git commit --message "Add Cosmos DB module"
    

    La sortie ressemble à l’exemple suivant.

    [add-database 513f700] Add Cosmos DB module
      2 files changed, 71 insertions(+)
      create mode 100644 deploy/modules/cosmos-db.bicep
    

Passer d’une branche à l’autre

Maintenant que vous avez apporté les modifications à votre branche, vous pouvez vérifier que les modifications sont visibles uniquement sur la branche Add-Database.

  1. Consultez la branche main. Vous pouvez utiliser l'une des approches suivantes :

    • Dans la fenêtre du terminal Visual Studio Code, entrez la commande suivante :

      git checkout main
      
    • Dans la barre d’état Visual Studio Code en bas de la fenêtre, sélectionnez le nom de la branche qui affiche actuellement add-database.

      Une liste de branches apparaît. Sélectionnez la branche main.

  2. Dans le volet Explorer de Visual Studio Code, ouvrez le fichier main.bicep.

    Notez qu’aucune des modifications Azure Cosmos DB que vous avez apportées n’est incluse. Maintenant que vous avez basculé vers la branche main, le module de base de données n’est pas là. Ils sont stockés de manière sécurisée sur votre branche add-database.

Fusionnez votre branche

Votre équipe de site Web a testé les modifications et est maintenant prête à lancer le site Web mis à jour avec la base de données Azure Cosmos DB incluse. Vous allez fusionner la branche Add-Database dans la branche main.

  1. Vérifiez que vous êtes dans la branche main en exécutant git status et en examinant le nom de la branche dans la barre d’état.

  2. Dans le terminal Visual Studio Code, entrez la commande suivante pour fusionner les modifications de la branche add-database dans la branche main :

    git merge add-database
    
  3. Dans le volet Explorer de Visual Studio Code, ouvrez le fichier main.bicep.

    Notez que le module de base de données apparaît maintenant dans le fichier. Vous avez maintenant mis à jour vos fichiers Bicep corrects connus, sur votre branche main, pour inclure les modifications à partir de votre branche Add-Database.

  4. Dans le terminal Visual Studio Code, entrez la commande suivante pour supprimer la branche add-database, car vous n’en avez plus besoin :

    git branch -d add-database