我们使用以下非常简单的 arm 模板部署了一个 PowerBI 嵌入式工作区集合
{
"$schema": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {},
"variables": {},
"resources": [
{
"comments": "Test Power BI workspace collection",
"apiVersion": "2016-01-29",
"type": "Microsoft.PowerBI/workspaceCollections",
"location": "westeurope",
"sku": {
"name": "S1",
"tier": "Standard"
},
"name": "myTestPowerBiCollection",
"tags": {
"displayNmae": "Test Power BI workspace collection"
}
}
],
"outputs": {}
}
对于部署,我们使用了众所周知的Powershell命令New-AzureRmResourceGroupDeployment
创建后,如果我们尝试再次执行该命令,它将失败并显示以下消息
New-AzureRmResourceGroupDeployment : Resource Microsoft.PowerBI/workspaceCollections 'myTestPowerBiCollection' failed with message
{
"error": {
"code": "BadRequest",
"message": ""
}
}
如果我们删除集合并再次执行成功,则没有问题。我尝试了-Mode
参数的两个选项(Incremental, Complete)
但没有帮助,即使增量是默认选项。
这对我们来说是一个主要问题,因为我们希望将集合作为持续交付的一部分进行预配,并且我们多次执行此操作。
关于如何绕过这个问题的任何想法?
正如你提到的,如果存在 PowerBI 工作区集合名称,则当我们尝试再次部署 PowerBI 工作区集合时,它将引发期望。
如果可以添加自定义逻辑代码,我们可以使用 Get-AzureRmPowerBIWorkspaceCollection 来检查是否存在 PowerBI Workspace Collection。如果存在,它将返回PowershellBIworkspaceCollection对象,或者将引发未找到异常。
我们还可以使用Remove-AzureRmPowerBIWorkspaceCollection命令来删除PowerBI Workspace Collection。如果存在 PowerBI 工作区连接,我们可以跳过部署或删除并根据我们的逻辑续订它。