Microsoft 对图形 Bicep 资源使用动态类型

Microsoft Graph Bicep 扩展使用动态类型,可为 Microsoft Graph beta 版和 v1.0 启用语义版本控制。 使用动态类型,可以在现有 Microsoft Graph Bicep 资源类型中做出重大更改,而不会影响使用旧版这些资源类型的现有 Bicep 文件的部署。 使用动态类型时,将引用并提取特定版本控制Microsoft Graph Bicep 类型存储库,并从Microsoft 工件注册表提取。 这些类型版本与 Bicep 编译器 NuGet 包分离。

可通过两种方法直接在 main.bicep 文件中配置动态类型,或者在可在 main.bicep 文件中引用的 bicepconfig.json 文件中使用用户友好的类型版本别名

选择类型版本

需要从Microsoft 工件注册表添加对 Microsoft Graph Bicep 资源类型存储库的引用。 若要查找最新的或适当的存储库版本,请转到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>'

还可以在同一 Bicep 文件中指定 beta 版本,然后使用这两个版本中的类型。

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

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

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

此外,还可以声明使用较旧和较新的 Bicep 类型版本的资源。 该示例演示如何使用较旧的和较新的类型。 它通过使用完全限定的类型名称来消除两个不同的导入扩展中可用的同名类型之间的歧义:

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

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

// using and older version of the Microsoft Graph v1.0 Bicep types
resource app 'olderGraphV1:Microsoft.Graph/applications@v1.0' existing = {
    uniqueName: appName
}

在 Bicep 配置中配置动态类型

可以指定一个用户友好的别名,该别名引用要在 bicepconfig.json 文件中使用的 Microsoft Graph Bicep 类型存储库版本,并将<v1.0-version><beta-version>和占位符替换为要使用的类型版本。

{  
    "experimentalFeaturesEnabled": {  
        "extensibility": true  
    },
    "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 文件中使用这些别名。 如图所示,你可以声明使用 v1.0 和 beta 扩展,以便从 Microsoft Graph v1.0 和 Microsoft Graph beta 版本声明资源。

extension graphV1
extension graphBeta

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

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

注意

还可以从同一 Microsoft Graph 版本(如 Microsoft Graph v1.bicepconfig.json 0 中的较新版本和较旧的 Bicep 类型版本)为不同类型版本声明别名,并在导入扩展并使用完全限定的类型名称声明资源时,在 main.bicep 文件中引用这些别名。

从内置类型迁移到使用动态类型

Microsoft Graph Bicep 类型也内置于 Bicep 编译器 NuGet 包中。 此 NuGet 包包含 Microsoft Graph beta 版和 v1.0 Microsoft Graph 类型定义。 内置类型是 2024 年 9 月之前唯一可用的选项。

重要

内置类型已弃用,将于 2025 年 1 月 24 日停用。 在停用日期之前,内置类型(由 extension microsoftGraph其表示)将与新的动态类型共存。 任何Microsoft图形 Bicep 类型更改只能通过新版本的动态类型使用。

从内置类型切换到动态类型:

  1. 启动 VS Code 并打开包含 main.bicepbicepconfig.json 文件的文件夹。

  2. main.bicep 文件中,内置扩展下 microsoftGraph 存在警告。 将光标悬停在警告上以查看详细信息。

    内置Microsoft图形 Bicep 类型警告

  3. 若要解决此问题,请选择 警告详细信息底部的“快速修复 ”链接。