如何在Bicep中使用其他订阅发布的Azure Custom Provider资源?
在Bicep中使用其他订阅的Azure自定义提供程序资源
要在Bicep里使用另一订阅中发布的Azure自定义提供程序资源,按以下步骤操作:
1. 确认权限
确保执行Bicep部署的身份(用户账户、服务主体等)同时拥有:
- 当前部署目标资源组的部署权限
- 目标订阅中自定义提供程序所在资源组的读取权限,以及创建对应自定义资源的权限
2. 引用跨订阅的自定义提供程序
在Bicep文件中,用existing关键字引用目标订阅里的自定义提供程序,指定其所在的订阅ID和资源组:
// 引用另一订阅中的自定义提供程序 resource crossSubCustomProvider 'Microsoft.CustomProviders/resourceProviders@2018-09-01-preview' existing = { name: 'xxx' // 替换为你的自定义提供程序名称 scope: resourceGroup('目标订阅ID', '目标资源组名称') }
3. 创建自定义资源
基于引用的跨订阅提供程序,创建对应的自定义资源。注意资源类型要和自定义提供程序中定义的resourceTypes名称一致(示例中是myCustomResources):
// 创建自定义资源 resource myCustomResource 'Microsoft.CustomProviders/resourceProviders/myCustomResources@2018-09-01-preview' = { name: 'demoCustomResource' parent: crossSubCustomProvider properties: { // 自定义资源属性,根据你的需求填写,和CLI/ARM模板中的格式一致 description: '跨订阅创建的自定义资源' customKey: 'customValue' } }
4. 执行部署
使用Azure CLI部署Bicep文件,确保身份能访问两个订阅:
az deployment group create --resource-group 当前部署的资源组名称 --template-file ./your-bicep-file.bicep
注意事项
- 保持Bicep中使用的API版本和自定义提供程序的API版本完全一致(示例中为
2018-09-01-preview) - 如果需要调用自定义提供程序的操作,同样通过
parent关联跨订阅的提供程序来定义操作调用逻辑
内容的提问来源于stack exchange,提问作者El Gohr
相关产品推荐
相关产品推荐

