共用方式為


使用動態型別來利用 Microsoft Graph Bicep 的資源

Microsoft Graph Bicep 延伸模組支援動態類型,可讓您針對 Microsoft Graph beta 和 v1.0 使用語意版本設定。 動態類型可讓您使用特定版本的 Microsoft Graph Bicep 資源類型,因此未來的重大變更不會影響現有的 Bicep 檔案。 當您使用動態類型時,Bicep 會從 Microsoft 工件註冊表 取得所需的類型版本。 這些類型版本與 Bicep 編譯程式 NuGet 套件無關。

您可以透過兩種方式設定動態類型:

  • 直接在 main.bicep 檔案中。
  • 藉由在 bicepconfig.json 檔案中定義使用者易記的類型版本別名,並在 main.bicep 中參考它。

選擇類型版本

若要使用 Microsoft Graph Bicep 資源類型,請在 Microsoft Artifact Registry 中新增類型存放庫的參考。 移動到 Microsoft 工件註冊表,並搜尋「Microsoft Graph Bicep 擴充套件」,以便尋找 Microsoft Graph beta 和 v1.0 的最新或所需版本。

在 Bicep 檔案中設定動態類型

在您的 main.bicep 檔案中,參考您想要的 Microsoft Graph Bicep 類型存放庫版本。 請將 <v1.0-version> 替換為您想使用的 Microsoft Graph v1.0 類型版本。

extension 'br:mcr.microsoft.com/bicep/extensions/microsoftgraph/v1.0:<v1.0-version>'

您也可以使用相同檔案中這兩個版本的類型:

extension 'br:mcr.microsoft.com/bicep/extensions/microsoftgraph/v1.0:<v1.0-version>'
extension 'br:mcr.microsoft.com/bicep/extensions/microsoftgraph/beta:<beta-version>'

// Use Microsoft Graph v1.0
resource group 'Microsoft.Graph/groups@v1.0' existing = {
    uniqueName: groupName
}

// Use Microsoft Graph beta
resource app 'Microsoft.Graph/applications@beta' existing = {
    uniqueName: appName
}

宣告資源時使用不同類型的版本。 若要區分具有相同名稱的類型與不同的延伸模組,請使用完整類型名稱:

extension 'br:mcr.microsoft.com/bicep/extensions/microsoftgraph/v1.0:<v1.0-version-latest>' as latestGraphV1
extension 'br:mcr.microsoft.com/bicep/extensions/microsoftgraph/v1.0:<v1.0-version-older>' as olderGraphV1

// Use the latest Microsoft Graph v1.0 Bicep types
resource group 'latestGraphV1:Microsoft.Graph/groups@v1.0' existing = {
    uniqueName: groupName
}

// Use an older Microsoft Graph v1.0 Bicep type version
resource app 'olderGraphV1:Microsoft.Graph/applications@v1.0' existing = {
    uniqueName: appName
}

在 Bicep 設定中設定動態類型

bicepconfig.json中定義 Microsoft Graph Bicep 類型版本的使用者易記別名。 將 <v1.0-version><beta-version> 替換為您需要的版本。

{
    "extensions": {
        "graphV1": "br:mcr.microsoft.com/bicep/extensions/microsoftgraph/v1.0:<v1.0-version>",
        "graphBeta": "br:mcr.microsoft.com/bicep/extensions/microsoftgraph/beta:<beta-version>"
    }
}

接下來,請在 main.bicep 檔案中使用這些別名:

extension graphV1
extension graphBeta

// Use Microsoft Graph v1.0
resource group 'Microsoft.Graph/groups@v1.0' existing = {
    uniqueName: groupName
}

// Use Microsoft Graph beta
resource app 'Microsoft.Graph/applications@beta' existing = {
    uniqueName: appName
}

bicepconfig.json 中,您可以給來自同一 Microsoft Graph 版本的不同類型版本(如新版和舊版 v1.0 類型)定義別名,然後在 main.bicep 中使用完整限定類型名稱來引用它們。

例如,在 bicepconfig.json中:

{
    "extensions": {
        "graphV1Latest": "br:mcr.microsoft.com/bicep/extensions/microsoftgraph/v1.0:0.2.0-preview",
        "graphV1Older": "br:mcr.microsoft.com/bicep/extensions/microsoftgraph/v1.0:0.1.8-preview"
    }
}

接下來,在 main.bicep 中:

extension graphV1Latest
extension graphV1Older

// Use the latest Microsoft Graph v1.0 Bicep types
resource group 'graphV1Latest:Microsoft.Graph/groups@v1.0' existing = {
    uniqueName: groupName
}

// Use an older Microsoft Graph v1.0 Bicep type version
resource app 'graphV1Older:Microsoft.Graph/applications@v1.0' existing = {
    uniqueName: appName
}