演習 - ブランチを作成およびマージする
おもちゃ会社に戻すと、Web サイト開発者は、会社が販売しているおもちゃに関するデータを格納するための新しい Azure Cosmos DB データベースを追加することを計画しています。 開発者は、あなたに Cosmos DB リソースを追加するために、Bicep コードを更新するように求めています。 しかし、まだ変更を行う準備ができていません。 変更が完了したときに備えて、変更の準備を整えることを希望しています。
この演習では、リポジトリのブランチに新しい Bicep モジュールを追加します。 このプロセスでは、次のことを行います。
- ブランチを作成し、それに切り替えます。
- ブランチの Bicep コードを変更します。
- メイン ブランチに戻します。
- ブランチを main にマージします。
リポジトリにブランチを作成してチェックアウトする
Visual Studio Code ターミナルを使用して、次のコマンドを実行して、新しいブランチを作成し、チェックアウトします。
git checkout -b add-database
次のコマンドを実行して、リポジトリの状態を確認します。
git status
出力は次の例のようになります。
On branch add-database nothing to commit, working tree clean
出力の最初の行には、Git が add-database ブランチ上にあることが示されています。
Visual Studio Code で、ウィンドウの左下にあるステータス バーを確認します。 ブランチ名が add-database に変更されていることに注意します。
実行した他の Git コマンドと同様に、Visual Studio Code では、ブランチをチェックアウトしたときを含めて、Git リポジトリの最新の変更が認識されています。
ブランチでファイルを更新する
ブランチを作成したので、Web サイトの Azure Cosmos DB アカウント用の新しい Bicep モジュールを追加します。
deploy フォルダーの modules サブフォルダーで、cosmos-db.bicep という名前の新しいファイルを作成します。
Visual Studio Code によって Bicep ツールが読み込まれるように、空の cosmos-db.bicep ファイルを開いて保存します。
次のコードを 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: {} } } }
cosmos-db.bicep ファイルを保存して閉じます。
main.bicep ファイルを開きます。
appServiceAppName
パラメーター定義の下に、次のパラメーター定義を追加します。@description('The name of the Cosmos DB account. This name must be globally unique.') param cosmosDBAccountName string = 'toyweb-${uniqueString(resourceGroup().id)}'
appService
モジュール定義の下に次のモジュール定義を追加します。module cosmosDB 'modules/cosmos-db.bicep' = { name: 'cosmos-db' params: { location: location environmentType: environmentType cosmosDBAccountName: cosmosDBAccountName } }
main.bicep ファイルを保存して閉じます。
相違点を確認して変更をコミットする
ファイルの違いを確認したら、変更をステージングしてコミットします。 ファイルをコミットするために、Git CLI を使用するか、Visual Studio Code を使用するかを選択できます。 この例では、Git CLI が使用されています。
Visual Studio Code のソース管理を使用して、両方のファイルの相違点を確認します。
main.bicep ファイルで強調表示されている変更された行に注意してください。
コミットする準備ができているファイルを確認します。
git status
出力は次の例のようになります。
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")
両方のファイルの変更をステージングします。
git add .
ドット (
.
) では、変更されたすべてのファイルがステージングされます。変更をコミットします。
git commit --message "Add Cosmos DB module"
出力は次の例のようになります。
[add-database 513f700] Add Cosmos DB module 2 files changed, 71 insertions(+) create mode 100644 deploy/modules/cosmos-db.bicep
ブランチを切り替える
ブランチで変更を行ったので、変更が add-database ブランチにのみ表示されていることを確認できます。
main ブランチをチェックアウトします。 次のいずれかのアプローチを使用できます。
Visual Studio Code ターミナル ウィンドウで、次のコマンドを入力します。
git checkout main
ウィンドウの下部の Visual Studio Code ステータス バーで、現在 add-database が表示されているブランチ名を選択します。
ブランチの一覧が表示されます。 main ブランチを選択します。
Visual Studio Code のエクスプローラー ウィンドウで、main.bicep ファイルを開きます。
行った Azure Cosmos DB の変更は含まれていないことに注意してください。 これで main ブランチに切り替えたので、データベース モジュールはそこにありません。 心配は無用です。add-database ブランチに安全に保存されています。
ブランチをマージする
Web サイト チームが変更をテストし、これで Azure Cosmos DB データベースを含む更新された Web サイトを起動する準備が整いました。 add-database ブランチを main ブランチにマージします。
main ブランチにいることを確認するには、
git status
を実行し、ステータス バーのブランチ名を確認します。Visual Studio Code ターミナルで、次のコマンドを入力して、add-database ブランチの変更を main ブランチにマージします。
git merge add-database
Visual Studio Code のエクスプローラー ウィンドウで、main.bicep ファイルを開きます。
データベース モジュールがファイルに表示されるようになったことに注意します。 これで、main ブランチで、既知の正常な Bicep ファイルが更新され、add-database ブランチの変更が含まれました。
add-database ブランチは不要になったため、Visual Studio Code ターミナルで、次のコマンドを入力して、それを削除します。
git branch -d add-database