快速入門:使用 Microsoft Graph 資源建立及部署您的第一個 Bicep 檔案
在本快速入門中,您會建立 Bicep 檔案,分別宣告 Microsoft Entra 安全組和受控服務識別 (MSI),代表Microsoft Graph 資源和 Azure 資源。 接著,您會將 MSI 新增為群組的擁有者。 您還會了解 Bicep 延伸模組如何透過提供型別安全、語法驗證與自動完成來簡化開發。 最後,您會使用登入的用戶來部署 Bicep 檔案。
重要
本快速入門文章會使用動態類型參考,而不是淘汰的內建類型,將於 2025 年 1 月 24 日淘汰。 在淘汰日期之前,內 extension microsoftGraph
建類型會與新的動態類型共存。 如果任何現有的 Bicep 檔案使用內建類型, 請切換至使用動態類型 ,以避免任何未來的 Bicep 檔案部署問題。
重要
Microsoft Graph Bicep 目前處於預覽狀態。 請參閱 Microsoft Azure 預覽版增補使用規定,以了解適用於 Azure 功能 (搶鮮版 (Beta)、預覽版,或尚未正式發行的版本) 的法律條款。
必要條件
擁有有效的 Azure 訂用帳戶:如果您沒有 Azure 訂用帳戶,請在 開始之前建立免費帳戶 。
安裝 Bicep 工具以進行撰寫和部署。 本快速入門使用 VS Code 搭配 Bicep 擴充功能進行撰寫,以及用於部署的 Azure CLI。 Azure PowerShell 也會提供範例。 所需的最低 Bicep 版本為 v0.30.3。
擁有Microsoft Entra 角色 ,可指派您建立安全組的許可權。 用戶預設具有此許可權。 不過, 系統管理員可以關閉此預設值 ,在此情況下,您必須至少 獲派群組管理員 角色。
新增 Microsoft Graph 應用程式群組
啟動 VS Code,並在相同的資料夾中建立兩個新檔案 main.bicep 和 bicepconfig.json 。
接下來,若要能夠在 Bicep 檔案中宣告 Microsoft Graph 資源,您必須藉由 設定 bicepconfig.json 來啟用 Bicep 預覽功能,並指定 Microsoft Graph Bicep 類型版本。
此範例會使用 v1.0 資源,並宣告使用者易記的延伸模組名稱 「microsoftGraphV1_0」 來參考 br:mcr.microsoft.com/bicep/extensions/microsoftgraph/v1.0:0.1.8-preview
Microsoft 成品登錄 中的類型版本。
{
"experimentalFeaturesEnabled": {
"extensibility": true
},
// specify an alias for the version of the v1.0 dynamic types package you want to use
"extensions": {
"microsoftGraphV1_0": "br:mcr.microsoft.com/bicep/extensions/microsoftgraph/v1.0:0.1.8-preview"
}
}
您也可以在相同的 Bicep 檔案中,從 beta 和 v1.0 宣告 Microsoft Graph 資源,方法是從 Microsoft 成品登錄 新增 beta 類型版本的另一個參考。
在main.bicep中,輸入 extension microsoftGraphV1_0
,其中 microsoftGraphV1_0
是參考 Microsoft 成品登錄 中動態類型套件的用戶易記名稱。 語句extension
可讓 Bicep 編譯程式知道您包括您在 bicepconfig.json 中定義的 Microsoft Graph 類型。 在下一行,使用 resource
關鍵詞來定義資源。 輸入 resource exampleGroup
並新增空格。
extension microsoftGraphV1_0
resource exampleGroup
當您在符號名稱後面加上一個空格時,即會顯示資源類型的清單。 繼續輸入 群組 ,直到您可以從可用的選項中選取 Microsoft.Graph/Groups 。
提示
如果您沒有在 VS Code 中看到 Intellisense 選項,請確定您已如必要條件中所 指定安裝 Bicep 擴充功能。 如果您已安裝該延伸模組,則在開啟 Bicep 檔案之後,請給 Bicep 語言服務一些時間來啟動。 右下角的通知表示服務正在啟動。 當該通知消失時,表示服務正在執行。
選取 Microsoft.Graph/群組之後,您會看到可用的 API 版本 - beta 或 v1.0。 請一律選取 v1.0,除非無法使用,否則您所需的資源屬性只能在 Beta 中使用。 在本快速入門中,請使用 v1.0。
在資源類型的單引號後面,加上 = 和一個空格。 您會看到可將屬性新增至資源的選項。 選取 [required-properties]。
此選項會新增部署所需資源類型的所有屬性。 選取此選項之後,您的群組具有下列屬性:
resource exampleGroup 'Microsoft.Graph/groups@v1.0' = {
displayName:
mailEnabled:
mailNickname:
securityEnabled:
uniqueName:
}
提供這些屬性的值,將 mailEnabled 設定為 false
,並將 securityEnabled 設定為 true
。 uniqueName 代表此群組資源的不可變用戶端提供密鑰。
新增受控識別資源
使用 Bicep 延伸模組的 VS Code 提供預先定義的代碼段來簡化開發,例如建立受控識別的代碼段。 在 main.bicep 中,輸入 man,然後從清單中選取 res-managed-identity ,然後按 [TAB] 或 [ENTER]。
注意:目前不支援可延伸資源的資源代碼段,例如 Microsoft Graph 資源。
您的 Bicep 檔案現在包含下列程式碼:
resource managedIdentity 'Microsoft.ManagedIdentity/userAssignedIdentities@2018-11-30' = {
name: 'name'
location: location
}
您可以新增 的參數定義來location
修正遺漏的參數定義錯誤。 在延伸模組定義下,新增 param location string = resourceGroup().location
。 如需這裡所使用函式的詳細資訊,請參閱 resourceGroup()。 將受控識別的名稱從 name
變更為 exampleManagedIdentity
。
將受控識別設為群組資源的擁有者
在資源中 exampleGroup
,在 底下 uniqueName
建立新行,輸入 ow,其中顯示 擁有者 為唯一相符的屬性選項,然後按 [TAB] 或 [ENTER]。
擁有者屬性是一個陣列,因此,[]
請輸入 m 並挑選managedIdentity(受控識別的符號名稱),輸入 。並挑選屬性,然後輸入另一個 。並挑選 principalId,以參考受控識別的主體識別符。
您的 main.bicep 檔案現在看起來應該像這樣:
extension microsoftGraphV1_0
param location string = resourceGroup().location
resource exampleGroup 'Microsoft.Graph/groups@v1.0' = {
displayName: 'My example group'
mailEnabled: false
mailNickname: 'my-example-group'
securityEnabled: true
uniqueName: 'myExampleGroup'
owners: [managedIdentity.properties.principalId]
}
resource managedIdentity 'Microsoft.ManagedIdentity/userAssignedIdentities@2018-11-30' = {
name: 'exampleManagedIdentity'
location: location
}
使用登入的使用者部署 Bicep 檔案
使用下列範例登入 Azure CLI 或 Azure PowerShell 來部署 Bicep 檔案。 本檔中的 Azure CLI 範例會使用 Bash 控制台。
## Sign in to Azure CLI
az login
## Create a resource group
az group create --name exampleRG --location eastus
## Deploy the Bicep file
az deployment group create --resource-group exampleRG --template-file main.bicep
當部署完成時,您應該會看到指出部署成功的訊息。
注意
由於復寫延遲,將受控服務識別 (MSI) 新增為 Microsoft Entra 群組的擁有者,可能會導致部署失敗。 稍候一下,然後再部署相同的 Bicep 檔案。
清除資源
如果不再需要 Azure 資源,請使用 Azure CLI 或 Azure PowerShell 模組來刪除快速入門資源群組。
注意
資源群組是 Azure 概念,不會影響 Microsoft Graph 資源。 Microsoft Graph 資源需要以額外的要求來清除 Microsoft Graph。 為此,您可以使用 Azure CLI 或 Azure PowerShell、 Microsoft Graph CLI 或 Microsoft Graph PowerShell。
下列範例示範先刪除 Azure 資源的命令,然後使用 Azure CLI 和 Azure PowerShell 來刪除 Microsoft Graph 資源。
## Delete the resource group
az group delete --name exampleRG
## Delete the Microsoft Graph group
az rest --method delete --url 'https://graph.microsoft.com/v1.0/groups%28uniqueName=%27myExampleGroup%27%29'