【问题标题】:How to Upload PBIX file stored in Azure storage container to Power BI Service如何将存储在 Azure 存储容器中的 PBIX 文件上传到 Power BI 服务
【发布时间】:2022-11-11 22:58:35
【问题描述】:

我的要求是将存储在 Azure 存储容器中的 PBIX 文件上传到 Power BI 服务而不将其下载到本地驱动器,因为我必须在 Runbook Automation 中使用 PowerShell 脚本

通常我们可以通过提供如下本地路径来上传 PBIX 文件

$pbixFilePath = "C:\PBIXFileLocation\Test.pbix"$import = New-PowerBIReport -Path $pbixFilePath -Workspace $workspace -ConflictAction CreateOrOverwrite $进口 |选择对象 *

但是现在如果 PBIX 文件存储在 Azure 存储容器中,我必须使用哪个路径以及如何创建 PowerShell 脚本?可能吗?

尝试使用 Get-AzStorageBlob cmdlet 列出容器中的 blob,并将其作为上述脚本中的路径传递,结果出现以下错误:

如果可能,请帮助我使用示例 PowerShell 脚本来实现上述要求

提前致谢!

【问题讨论】:

    标签: powerbi azure-blob-storage azure-storage-account azure-runbook azure-storage-files


    【解决方案1】:

    可以按照我在 Azure 平台上的类似帖子来解决问题

    AnuragSingh-MSFT 是一颗宝石,向我解释清楚并解决了问题

    对 Azure 自动化 Runbook 执行的基本了解应该有助于澄清这个疑问。当 Runbook 旨在对 Azure 中的资源进行身份验证和运行时,它们会在 Azure 沙盒中运行。 Azure 自动化分配一个工作人员在沙盒中执行 Runbook 期间运行每个作业。有关详细信息,请参阅此链接 - Runbook 执行环境 这些沙箱是隔离环境,只能访问某些位置/路径/目录。

    以下部分应该有助于回答这个问题 - ...如果 PBIX 文件存储在 Azure 存储容器中,我必须使用哪个路径以及如何创建 PowerShell 脚本?

    上面 Manu 提供的脚本 sn-p 会将 blob 内容下载到运行脚本的沙箱内的同一目录中。您可以使用“。”在脚本中访问此路径。 --> 例如,如果您正在下载的 blob 名为 testBlob,它将在 location 中可用。 estBlob。 (“.”代表当前目录)。

    因此,pbixFilePath 可以初始化为 $pbixFilePath = ".Test.pbix"

    另一种选择是使用问题中提到的 $env:temp 。它是本地机器(在您的工作站上)上可用的环境变量之一,通常解析为 C:Users<username>AppDataLocalTemp

    在 Azure 自动化沙盒环境中,此变量解析为 C:UsersClientTemp

    因此,您可以使用以下行下载 blob 内容:

    Get-AzStorageBlobContent -Blob $blob -Container $ContainerName -Context $Ctx -Destination $env:temp #Destination 参数设置目标文件夹。默认为本地目录 (.)

    在这种情况下,您将 pbixFilePath 初始化为 $pbixFilePath = $env:temp+"Test.pbix"

    只要不超过自动化限制,任何一种情况都可以。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-01-18
      • 2018-10-22
      • 1970-01-01
      • 2020-02-08
      • 1970-01-01
      • 1970-01-01
      • 2021-06-23
      • 1970-01-01
      相关资源
      最近更新 更多