練習 - 定義子資源
注意
當您第一次啟動沙箱並接受條款時,您的 Microsoft 帳戶會與名為「Microsoft Learn 沙箱」的新 Azure 目錄建立關聯。 系統也會將您新增至名為「指引訂用帳戶」的特殊訂用帳戶。
您即將開始處理研發團隊的要求,並決定要從為玩具無人機的測試資料建立 Azure Cosmos DB 資料庫開始。 在此練習中,您會建立 Azure Cosmos DB 帳戶和兩個子資源,一個是使用 parent
屬性,另一個則做為巢狀結構資源。
在此過程中,您將會:
- 建立部署 Cosmos DB 帳戶的 Bicep 檔案。
- 新增 Cosmos DB 帳戶的子資源資料庫和容器。
- 部署範本並驗證部署。
此練習使用適用於 Visual Studio Code 的 Bicep 延伸模組。 請務必在 Visual Studio Code 中安裝此延伸模組。
建立包含 Azure Cosmos DB 帳戶的 Bicep 範本
首先,使用 Azure Cosmos DB 帳戶建立新的 Bicep 範本。 若要這麼做︰
打開 Visual Studio Code。
建立名為 main.bicep 的新檔案。
儲存空檔案,讓 Visual Studio Code 載入 Bicep 工具。
您可以選取 [檔案]>[另存新檔],或在 Windows 中按Ctrl+S (macOS 為 ⌘+S)。 請務必記住您儲存檔案的位置。 例如,您可能需要建立指令碼資料夾來儲存檔案。
將下列內容新增至該檔案。 建議最好以手動方式輸入,而非複製並貼上。 如此一來,您就可以看到工具如何協助您撰寫 Bicep 檔案。
param cosmosDBAccountName string = 'toyrnd-${uniqueString(resourceGroup().id)}' param location string = resourceGroup().location resource cosmosDBAccount 'Microsoft.DocumentDB/databaseAccounts@2024-05-15' = { name: cosmosDBAccountName location: location properties: { databaseAccountOfferType: 'Standard' locations: [ { locationName: location } ] } }
提示
Bicep 對您放置行符號的位置非常嚴格,因此請務必只在此處顯示的位置新增行符號。
此 Bicep 範本會部署 Azure Cosmos DB 帳戶,這是您在下一節中建置的父代資源。
儲存對檔案所做的變更。
加入資料庫
接下來,您會建立資料庫,這是 Azure Cosmos DB 帳戶的子資源。
在檔案頂端的兩個現有參數之間,新增下列參數:
param cosmosDBDatabaseThroughput int = 400
在參數宣告下,新增下列變數:
var cosmosDBDatabaseName = 'FlightTests'
在檔案底部的 Azure Cosmos DB 帳戶資源定義下方,新增下列資源定義。
resource cosmosDBDatabase 'Microsoft.DocumentDB/databaseAccounts/sqlDatabases@2024-05-15' = { parent: cosmosDBAccount name: cosmosDBDatabaseName properties: { resource: { id: cosmosDBDatabaseName } options: { throughput: cosmosDBDatabaseThroughput } } }
請注意,此程式碼會使用
parent
屬性來部署資料庫,也就是子資源。 另請注意,程式碼會使用完全合格的資源類型,且已明確指定 API 版本。儲存對檔案所做的變更。
新增容器
現在您可以新增另一個子資源。 這次,您會將其新增為巢狀結構資源,而不是使用 parent
屬性。
在檔案頂端附近的
cosmosDBDatabaseName
變數定義下方,新增下列變數:var cosmosDBContainerName = 'FlightTests' var cosmosDBContainerPartitionKey = '/droneId'
在檔案底部附近的資料庫資源定義內,以及其右大括弧 (
}
) 之前,請新增下列的巢狀結構資源定義:resource container 'containers' = { name: cosmosDBContainerName properties: { resource: { id: cosmosDBContainerName partitionKey: { kind: 'Hash' paths: [ cosmosDBContainerPartitionKey ] } } options: {} } }
請注意,您已使用簡短的資源類型 (
containers
),因為 Bicep 了解其屬於父代資源類型。 Bicep 知道完整的資源類型為Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers
。 您並未指定 API 版本,所以 Bicep 會使用來自父代資源2020-04-01
的版本。完成之後,您的完整 Bicep 範本應該如以下範例所示:
param cosmosDBAccountName string = 'toyrnd-${uniqueString(resourceGroup().id)}' param cosmosDBDatabaseThroughput int = 400 param location string = resourceGroup().location var cosmosDBDatabaseName = 'FlightTests' var cosmosDBContainerName = 'FlightTests' var cosmosDBContainerPartitionKey = '/droneId' 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: {} } } }
儲存對檔案所做的變更。
將範本部署至 Azure
若要將此範本部署至 Azure,您必須從 Visual Studio Code 終端機登入您的 Azure 帳戶。 請確定您已安裝 Azure CLI,並記得使用您用來啟動沙箱的相同帳戶登入。
在 [終端機] 功能表上,選取 [新增終端機]。 終端機視窗通常隨即在畫面的下半部開啟。
如果終端機視窗在右側顯示 bash,表示已開啟正確的殼層。 或者,如果您在右側看到 Bash 殼層圖示,則可以選取它來啟動殼層。
如果出現 bash 以外的殼層,請選取殼層下拉式清單箭號,然後選取 [Git Bash]。
在終端機中,前往您儲存範本的目錄。 例如,若將範本儲存於 templates 資料夾,則可使用此命令:
cd templates
安裝 Bicep
執行以下命令,確保您有最新版本 Bicep:
az bicep install && az bicep upgrade
登入 Azure
在 Visual Studio Code 終端中,執行下列命令以登入 Azure:
az login
在開啟的瀏覽器中,登入您的 Azure 帳戶。
Visual Studio Code 終端機會顯示與此帳戶相關聯的訂用帳戶清單。
將您在此工作階段中執行的所有 Azure CLI 命令,設定為預設的訂用帳戶。
az account set --subscription "Concierge Subscription"
注意
如果您最近使用多個沙箱,則終端機可能會顯示多個「指引訂用帳戶」執行個體。 在此情況下,請使用接下來的兩個步驟來將其設定為預設訂用帳戶。 如果上述命令成功,且只列出一個「指引訂用帳戶」,則請略過接下來的兩個步驟。
取得指引訂用帳戶識別碼。
az account list \ --refresh \ --query "[?contains(name, 'Concierge Subscription')].id" \ --output table
使用訂用帳戶識別碼設定預設訂用帳戶。 將 {your subscription ID} 取代為最新的指引訂用帳戶識別碼。
az account set --subscription {your subscription ID}
設定預設資源群組
使用 Azure CLI 時,您可以設定預設的資源群組,並省略本練習中其餘的 Azure CLI 命令參數。 將預設值設定為在沙箱環境中為您建立的資源群組。
az configure --defaults group="<rgn>[sandbox resource group name]</rgn>"
將範本部署至 Azure
從 Visual Studio Code 中的終端執行下列程式碼,將 Bicep 範本部署到 Azure。 此作業可能需要一到兩分鐘的時間才能完成,然後您即會看到成功的部署。
az deployment group create --template-file main.bicep
若要將此範本部署至 Azure,請從 Visual Studio Code 終端登入 Azure 帳戶。 請確定您已安裝 Azure PowerShell,並登入啟動沙箱的相同帳戶。
在 [終端機] 功能表上,選取 [新增終端機]。 終端機視窗通常隨即在畫面的下半部開啟。
如果終端機視窗在右側顯示 pwsh 或 powershell,表示已開啟正確的殼層。 或者,如果您在右側看到 PowerShell 殼層圖示,則可以選取它來啟動殼層。
如果出現 pwsh 或 powershell 以外的殼層,則請選取該殼層下拉式清單箭號,然後選取 [PowerShell]。
在終端機中,前往您儲存範本的目錄。 例如,若將範本儲存在 templates 資料夾,則可使用此命令:
Set-Location -Path templates
安裝 Bicep CLI
若要從 Azure PowerShell 使用 Bicep,請安裝 Bicep CLI。
使用 Azure PowerShell 登入 Azure
在 Visual Studio Code 終端中,執行下列命令:
Connect-AzAccount
瀏覽器隨即開啟,讓您可以登入您的 Azure 帳戶。
登入 Azure 之後,您會在終端機中看到與此帳戶相關聯的訂用帳戶清單。
如果您已啟動沙箱,則會顯示名為「指引訂用帳戶」的訂用帳戶。 請在接下來的練習中使用此訂用帳戶。
將您在此工作階段中執行的所有 Azure PowerShell 命令,設定為預設的訂用帳戶。
$context = Get-AzSubscription -SubscriptionName 'Concierge Subscription' Set-AzContext $context
注意
如果您最近使用多個沙箱,則終端機可能會顯示多個「指引訂用帳戶」執行個體。 在此情況下,請使用接下來的兩個步驟來將其設定為預設訂用帳戶。 如果上述命令成功,且只列出一個「指引訂用帳戶」,則請略過接下來的兩個步驟。
取得訂用帳戶識別碼。 執行下列命令會列出您的訂用帳戶與其識別碼。 尋找
Concierge Subscription
,然後複製第二個資料行的識別碼。 其看起來像aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e
。Get-AzSubscription
將您使用中的訂用帳戶變更為「指引訂用帳戶」。 請務必將 {Your subscription ID} 取代為您複製的訂用帳戶。
$context = Get-AzSubscription -SubscriptionId {Your subscription ID} Set-AzContext $context
設定預設資源群組
您可以設定預設資源群組,並省略本練習中其餘的 Azure PowerShell 命令參數。 將此預設值設定為在沙箱環境中為您建立的資源群組。
Set-AzDefault -ResourceGroupName <rgn>[sandbox resource group name]</rgn>
將範本部署至 Azure
在終端中使用下列 Azure PowerShell 命令,將範本部署到 Azure。 此作業可能需要一到兩分鐘的時間才能完成,然後您即會看到成功的部署。
New-AzResourceGroupDeployment -TemplateFile main.bicep
檢查部署
前往 Azure 入口網站,並確定您在沙箱訂用帳戶中:
在頁面右上角選取您的虛擬人偶。
選取 [切換目錄]。 在清單中,選擇 [Microsoft Learn 沙箱] 目錄。
在首頁中,選取 [資源群組]。 [資源群組] 窗格隨即顯示。
選取 [沙箱資源群組名稱]。
在 [概觀] 中,您會看到一個部署成功。
選取 [1 成功] 以查看部署的詳細資料。
選取名為 main 的部署,並查看已部署的資源,然後選取 [部署詳細資料] 來予以展開。 此案例中列出 Cosmos DB 帳戶、資料庫和容器。
讓頁面在瀏覽器中保持開啟狀態,以便稍後再次檢查部署。