연습 - 분기를 만들고 병합

완료됨

장난감 회사로 돌아가서, 웹 사이트 개발자들은 회사에서 판매하는 장난감에 대한 데이터를 저장할 새 Azure Cosmos DB 데이터베이스를 추가할 계획입니다. 웹 사이트 개발자들은 Cosmos DB 리소스를 추가하도록 Bicep 코드를 업데이트해 달라고 여러분에게 요청했습니다. 그러나 이들은 아직 변경할 준비가 되지 않았습니다. 이들은 자신들이 수정을 마치면 여러분이 변경 내용을 준비해 줄 것을 원합니다.

이 연습에서는 리포지토리의 분기에 새 Bicep 모듈을 추가하겠습니다. 프로세스 중에 다음을 수행합니다.

  • 분기를 만들고 해당 분기로 전환합니다.
  • 분기에서 Bicep 코드를 변경합니다.
  • 기본 분기로 다시 전환합니다.
  • 분기를 main 분기에 병합합니다.

리포지토리에 분기를 만들고 체크 아웃

  1. Visual Studio Code 터미널에서 다음 명령을 실행하여 새 분기를 만들고 체크 아웃합니다.

    git checkout -b add-database
    
  2. 다음 명령을 실행하여 리포지토리 상태를 확인합니다.

    git status
    

    다음과 유사하게 출력됩니다.

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

    출력의 첫 번째 줄은 Git이 add-database 분기에 있다는 것을 알려줍니다.

  3. Visual Studio Code의 창 아래쪽에 있는 상태 표시줄을 봅니다. 왼쪽의 분기 이름이 add-database로 변경되었습니다.

    이전에 실행한 다른 Git 명령과 마찬가지로, Visual Studio Code는 분기를 체크 아웃하는 경우를 포함하여 항상 Git 리포지토리의 변경 내용으로 업데이트됩니다.

분기에서 파일 업데이트

분기를 만들었으므로, 이제 웹 사이트의 Azure Cosmos DB 계정에 대한 새 Bicep 모듈을 추가합니다.

  1. deploy 폴더의 modules 하위 폴더에 cosmos-db.bicep이라는 새 파일을 만듭니다.

  2. cosmos-db.bicep 파일을 열고 저장합니다. 그러면 Visual Studio Code에서 Bicep 도구가 로드됩니다.

  3. 다음 코드를 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. cosmos-db.bicep 파일을 저장하고 닫습니다.

  5. main.bicep 파일을 엽니다.

  6. appServiceAppName 매개 변수 정의 아래에 다음 매개 변수 정의를 추가합니다.

    @description('The name of the Cosmos DB account. This name must be globally unique.')
    param cosmosDBAccountName string = 'toyweb-${uniqueString(resourceGroup().id)}'
    
  7. appService 모듈 정의 아래에 다음 모듈 정의를 추가합니다.

    module cosmosDB 'modules/cosmos-db.bicep' = {
      name: 'cosmos-db'
      params: {
        location: location
        environmentType: environmentType
        cosmosDBAccountName: cosmosDBAccountName
      }
    }
    
  8. main.bicep 파일을 저장하고 닫습니다.

차이점 검토 및 변경 내용 커밋

  1. Visual Studio Code에서 소스 제어를 사용하여 두 파일의 차이점을 살펴봅니다.

    변경된 줄은 main.bicep 파일에서 강조 표시됩니다.

  2. 변경 내용을 커밋합니다. Git CLI 또는 Visual Studio Code 중에 무엇을 사용하여 파일을 커밋할 것인지 선택할 수 있습니다.

    Git CLI를 사용하는 경우 먼저 파일을 스테이징해야 합니다.

분기 전환

분기에서 변경 작업을 수행했으므로, 변경 내용이 add-database 분기에만 표시되는지 확인하면 됩니다.

  1. main 분기를 체크 아웃합니다. 다음 방법 중 하나를 선택할 수 있습니다.

    • Visual Studio Code 터미널 창에서 다음 명령을 입력합니다.

      git checkout main
      
    • 창 아래쪽의 Visual Studio Code 상태 표시줄에서 현재 add-database를 표시하는 분기 이름을 선택합니다.

      분기 목록이 표시됩니다. main 분기를 선택합니다.

  2. Visual Studio Code 탐색기 창에서 main.bicep 파일을 엽니다.

    Azure Cosmos DB 변경 내용은 포함되지 않습니다. main 분기로 전환했으므로 데이터베이스 모듈이 없습니다. 걱정할 필요 없습니다. 분기에 안전하게 저장됩니다.

분기 병합

웹 사이트 팀이 변경 내용을 테스트했으며, 이제 Azure Cosmos DB 데이터베이스가 포함된 업데이트된 웹 사이트를 시작할 준비가 되었습니다. add-database 분기를 main 분기에 병합하겠습니다.

  1. git status 명령을 실행하고 상태 표시줄에서 분기 이름을 확인하여 현재 main 분기에 있는지 확인합니다.

  2. Visual Studio Code 터미널에서 다음 명령을 입력하여 add-database 분기의 변경 내용을 main 분기에 병합합니다.

    git merge add-database
    
  3. Visual Studio Code 탐색기 창에서 main.bicep 파일을 엽니다.

    이제 데이터베이스 모듈이 파일에 표시됩니다. main 분기의 알려진 올바른 Bicep 파일이 add-database 분기의 변경 내용을 포함하도록 업데이트되었습니다.

  4. Visual Studio Code 터미널에서 다음 명령을 입력하여 더 이상 필요 없는 add-database 분기를 삭제합니다.

    git branch -d add-database