Esercizio - Creare un ramo ed eseguirne il merge

Completato

Tornando all'azienda di giocattoli, gli sviluppatori del sito Web prevedono di aggiungere un nuovo database Azure Cosmos DB in cui archiviare i dati sui giocattoli venduti dall'azienda. Gli sviluppatori hanno chiesto di aggiornare il codice Bicep per aggiungere le risorse di Cosmos DB, ma non sono ancora pronti per apportare le variazioni, che dovranno solo essere preparate in attesa che completino le modifiche.

In questo esercizio si aggiungerà un nuovo modulo di Bicep in un ramo del repository. Durante il processo, si eseguiranno queste operazioni:

  • Creare e passare a un ramo.
  • Modificare il codice Bicep nel ramo.
  • Tornare al ramo main.
  • Eseguire il merge del ramo in main.

Creare ed eseguire il checkout di un ramo nel repository

  1. Usando il terminale di Visual Studio Code, eseguire il comando seguente per creare ed eseguire il checkout di un nuovo ramo:

    git checkout -b add-database
    
  2. Eseguire il comando seguente per controllare lo stato del repository:

    git status
    

    L'output è simile al seguente esempio:

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

    La prima riga dell'output indica che Git si trova nel ramo add-database.

  3. In Visual Studio Code esaminare la barra di stato nella parte inferiore sinistra della finestra. Si noti che il nome è cambiato in add-database.

    Come per gli altri comandi di Git eseguiti, Visual Studio Code rimane aggiornato con le modifiche apportate nel repository Git, anche quando si esegue il checkout di un ramo.

Aggiornare un file nel ramo

Dopo aver creato un ramo, si aggiungerà un nuovo modulo di Bicep per l'account Azure Cosmos DB del sito Web.

  1. Nella sottocartella moduli all'interno della cartella distribuzione creare un nuovo file denominato cosmos-db.bicep.

  2. Aprire e salvare il file cosmos-db.bicep vuoto in modo che Visual Studio Code carichi gli strumenti di Bicep.

  3. Copiare il codice seguente in 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. Salvare e chiudere il file cosmos-db.bicep.

  5. Aprire il file main.bicep.

  6. Aggiungere le definizioni di parametri seguenti sotto la definizione del parametro appServiceAppName:

    @description('The name of the Cosmos DB account. This name must be globally unique.')
    param cosmosDBAccountName string = 'toyweb-${uniqueString(resourceGroup().id)}'
    
  7. Aggiungere la definizione di modulo seguente sotto la definizione del modulo appService:

    module cosmosDB 'modules/cosmos-db.bicep' = {
      name: 'cosmos-db'
      params: {
        location: location
        environmentType: environmentType
        cosmosDBAccountName: cosmosDBAccountName
      }
    }
    
  8. Salvare e chiudere il file main.bicep.

Esaminare le differenze ed eseguire il commit delle modifiche

Dopo aver esaminato le differenze tra i file, preparare il commit ed eseguire il commit delle modifiche. È possibile scegliere se usare l'interfaccia della riga di comando di Git o Visual Studio Code per eseguire il commit dei file. Questo esempio usa l'interfaccia della riga di comando di Git.

  1. Usando la funzionalità Controllo del codice sorgente di Visual Studio Code, esaminare le differenze per entrambi i file.

    Le righe modificate sono evidenziate nel file main.bicep.

  2. Esaminare i file pronti per il commit.

    git status
    

    L'output avrà un aspetto simile all'esempio seguente.

    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. Preparare le modifiche per entrambi i file.

    git add .
    

    Il punto (.) eseguire un'installazione di appoggio di tutti i file modificati.

  4. Esegui il commit delle modifiche.

    git commit --message "Add Cosmos DB module"
    

    L'output avrà un aspetto simile all'esempio seguente.

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

Cambiare ramo

Dopo aver apportato le modifiche nel ramo, è possibile verificare che siano visibili solo nel ramo add-database.

  1. Eseguire il checkout del ramo main. È possibile usare uno degli approcci seguenti:

    • Nel finestra del terminale di Visual Studio Code immettere il comando seguente:

      git checkout main
      
    • Sulla barra di stato di Visual Studio Code, nella parte inferiore della finestra selezionare il nome del ramo che attualmente visualizza add-database.

      Viene visualizzato un elenco di rami. Selezionare il ramo main.

  2. Nel riquadro Esplora risorse di Visual Studio Code aprire il file main.bicep.

    Si noti che non è inclusa nessuna delle modifiche apportate in Azure Cosmos DB. Il modulo di database non è quindi presente nel ramo main. Nessun problema: le modifiche sono archiviate nel ramo del database aggiuntivo.

Eseguire il merge del ramo

Il team del sito Web ha testato le modifiche ed è ora pronto ad avviare il sito Web aggiornato con il database Azure Cosmos DB incluso. Si eseguirà il merge del ramo add-database nel ramo main.

  1. Verificare di trovarsi nel ramo main eseguendo git status e controllando il nome del ramo sulla barra di stato.

  2. Nel terminale di Visual Studio Code immettere il comando seguente per eseguire il merge delle modifiche dal ramo add-database al ramo main:

    git merge add-database
    
  3. Nel riquadro Esplora risorse di Visual Studio Code aprire il file main.bicep.

    Si noti che il modulo di database viene ora visualizzato nel file. I file Bicep validi sono stati aggiornati nel ramo main per includere le modifiche apportate nel ramo add-database.

  4. Nel terminale di Visual Studio Code immettere il comando seguente per eliminare il ramo add-database, perché non è più necessario:

    git branch -d add-database