練習 - 建立及合併分支
回到玩具公司,您的網站開發人員想要新增 Azure Cosmos DB 資料庫,以儲存公司所銷售玩具的相關資料。 開發人員要求您更新 Bicep 程式碼,以新增 Cosmos DB 資源。 不過,他們還沒準備好要進行變更。 他們只希望您能夠在完成修改時備妥這些變更。
在此練習中,您會在存放庫分支上新增新的 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 存放庫中的變更,即使是您簽出分支時。
更新您分支上的檔案
現在您已建立分支,您將為網站的 Azure Cosmos DB 帳戶新增 Bicep 模組。
在 deploy 資料夾的 modules 子資料夾中,建立名為 cosmos-db.bicep 的新檔案。
開啟並儲存空白的 cosmos-db.bicep 檔案,讓 Visual Studio Code 載入 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 的 [Explorer] 窗格中,開啟 main.bicep 檔案。
請注意,您所做的 Azure Cosmos DB 變更都未包含在內。 既然您已經切換至 main 分支,此處就不會有資料庫模組。 別擔心,這些變更會安全地儲存在您的 add-database 分支上。
將分支合併
您的網站小組已測試過變更,現在準備啟動包含 Azure Cosmos DB 資料庫的更新網站。 您會將 add-database 分支合併到 main 分支中。
藉由執行
git status
和查看狀態列中的分支名稱,確認您是在 main 分支上。在 Visual Studio Code 終端機中,輸入下列命令,將來自 add-database 分支的變更合併到 main 分支:
git merge add-database
在 Visual Studio Code 的 [Explorer] 窗格中,開啟 main.bicep 檔案。
請注意,資料庫模組現在會出現在檔案中。 您現在已在 main 分支上更新已知良好的 Bicep 檔案,以包含您的 add-database 分支變更。
在 Visual Studio Code 終端機輸入下列命令,以刪除 add-database 分支,因為您不再需要該分支:
git branch -d add-database