从 arm 模板更新 PowerBI 工作区集合时出错



我们使用以下非常简单的 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 工作区连接,我们可以跳过部署或删除并根据我们的逻辑续订它。

最新更新