Ćwiczenie — tworzenie i scalanie gałęzi

Ukończone

Po powrocie do firmy zabawki deweloperzy witryny internetowej planują dodać nową bazę danych usługi Azure Cosmos DB do przechowywania danych o zabawkach sprzedawanych przez firmę. Deweloperzy poprosili Cię o zaktualizowanie kodu Bicep w celu dodania zasobów usługi Cosmos DB. Jednak nie są one jeszcze gotowe do wprowadzenia zmian. Po prostu chcesz, aby zmiany były gotowe po zakończeniu modyfikacji.

W tym ćwiczeniu dodasz nowy moduł Bicep w gałęzi repozytorium. Podczas tego procesu wykonasz następujące czynności:

  • Utwórz gałąź i przejdź do niej.
  • Zmień kod Bicep w gałęzi .
  • Wróć do gałęzi głównej.
  • Scal gałąź z gałęzią główną.

Tworzenie i wyewidencjonowywanie gałęzi w repozytorium

  1. Za pomocą terminalu programu Visual Studio Code uruchom następujące polecenie, aby utworzyć i wyewidencjonować nową gałąź:

    git checkout -b add-database
    
  2. Uruchom następujące polecenie, aby sprawdzić stan repozytorium:

    git status
    

    Dane wyjściowe wyglądają podobnie do następującego przykładu:

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

    Pierwszy wiersz danych wyjściowych informuje, że usługa Git znajduje się w gałęzi add-database .

  3. W programie Visual Studio Code przyjrzyj się pasku stanu u dołu po lewej stronie okna. Zwróć uwagę, że nazwa gałęzi została zmieniona na add-database.

    Podobnie jak w przypadku innych poleceń git, które zostały uruchomione, program Visual Studio Code jest aktualny wraz ze zmianami w repozytorium Git, w tym podczas wyewidencjonowania gałęzi.

Aktualizowanie pliku w gałęzi

Po utworzeniu gałęzi dodasz nowy moduł Bicep dla konta usługi Azure Cosmos DB witryny internetowej.

  1. W podfolderze modułów folderu deploy utwórz nowy plik o nazwie cosmos-db.bicep.

  2. Otwórz i zapisz pusty plik cosmos-db.bicep , aby program Visual Studio Code ładuje narzędzia Bicep.

  3. Skopiuj następujący kod do pliku 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@2022-05-15' = {
      name: cosmosDBAccountName
      location: location
      properties: {
        databaseAccountOfferType: 'Standard'
        locations: [
          {
            locationName: location
          }
        ]
      }
    }
    
    resource cosmosDBDatabase 'Microsoft.DocumentDB/databaseAccounts/sqlDatabases@2022-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. Zapisz i zamknij plik cosmos-db.bicep .

  5. Otwórz plik main.bicep.

  6. Dodaj następujące definicje parametrów poniżej definicji parametru appServiceAppName :

    @description('The name of the Cosmos DB account. This name must be globally unique.')
    param cosmosDBAccountName string = 'toyweb-${uniqueString(resourceGroup().id)}'
    
  7. Dodaj następującą definicję modułu poniżej definicji modułu appService :

    module cosmosDB 'modules/cosmos-db.bicep' = {
      name: 'cosmos-db'
      params: {
        location: location
        environmentType: environmentType
        cosmosDBAccountName: cosmosDBAccountName
      }
    }
    
  8. Zapisz i zamknij plik main.bicep .

Przejrzyj różnice i zatwierdź zmiany

Po przejrzeniu różnic w plikach należy przygotować i zatwierdzić zmiany. Możesz wybrać, czy chcesz zatwierdzić pliki przy użyciu interfejsu wiersza polecenia usługi Git, czy programu Visual Studio Code. W tym przykładzie użyto interfejsu wiersza polecenia usługi Git.

  1. Korzystając z kontroli źródła w programie Visual Studio Code, przyjrzyj się różnicom obu plików.

    Zwróć uwagę na zmienione wiersze wyróżnione w pliku main.bicep .

  2. Przejrzyj pliki, które są gotowe do zatwierdzenia.

    git status
    

    Dane wyjściowe będą wyglądać podobnie do poniższego przykładu.

    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. Przygotuj zmiany dla obu plików.

    git add .
    

    Kropka (.) etapy wszystkich zmienionych plików.

  4. Zatwierdź zmiany.

    git commit --message "Add Cosmos DB module"
    

    Dane wyjściowe będą wyglądać podobnie do poniższego przykładu.

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

Przełączanie gałęzi

Po wprowadzeniu zmian w gałęzi możesz sprawdzić, czy zmiany są widoczne tylko w gałęzi add-database .

  1. Wyewidencjonuj gałąź główną . Możesz wybrać jedną z następujących metod:

    • W oknie terminalu programu Visual Studio Code wprowadź następujące polecenie:

      git checkout main
      
    • Na pasku stanu programu Visual Studio Code w dolnej części okna wybierz nazwę gałęzi, która obecnie wyświetla add-database.

      Zostanie wyświetlona lista gałęzi. Wybierz gałąź główną.

  2. W okienku Eksplorator programu Visual Studio Code otwórz plik main.bicep.

    Zwróć uwagę, że żadne z wprowadzonych zmian w usłudze Azure Cosmos DB nie zostały uwzględnione. Po przełączeniu się do gałęzi głównej moduł bazy danych nie istnieje. Nie martw się, są one bezpiecznie przechowywane w gałęzi add-database .

Scalanie gałęzi

Twój zespół witryny internetowej przetestował zmiany i jest teraz gotowy do uruchomienia zaktualizowanej witryny internetowej z uwzględniona bazą danych usługi Azure Cosmos DB. Scalisz gałąź add-database z gałęzią główną .

  1. Sprawdź, czy jesteś w gałęzi głównej, uruchamiając polecenie git status i przeglądając nazwę gałęzi na pasku stanu.

  2. W terminalu programu Visual Studio Code wprowadź następujące polecenie, aby scalić zmiany z gałęzi add-database w gałęzi głównej:

    git merge add-database
    
  3. W okienku Eksplorator programu Visual Studio Code otwórz plik main.bicep.

    Zwróć uwagę, że moduł bazy danych jest teraz wyświetlany w pliku . Teraz zaktualizowano znane dobre pliki Bicep w gałęzi głównej , aby uwzględnić zmiany z gałęzi add-database .

  4. W terminalu programu Visual Studio Code wprowadź następujące polecenie, aby usunąć gałąź add-database , ponieważ nie jest już potrzebna:

    git branch -d add-database