如何从Azure管道内的Blob存储下载文件?

时间:2020-07-24 23:20:45

标签: azure-devops azure-pipelines azcopy

我正在尝试下载一个已上传到Azure blob存储的文件,该文件要在Azure Pipelines构建期间使用。

我正在使用windows-latest Microsoft托管的虚拟机来构建。

我曾尝试制作一个Powershell脚本并使用azcopy,但仍无法对其进行身份验证。我尝试浏览文档,但是有太多的术语,首字母缩写词和不同的处理方式,我迷失了。看来,由于我使用的是Azure提供的虚拟机,因此我应该能够以某种方式使用内置身份验证,而不必传递凭据,但我无法弄清楚。我尝试了azcopy login --identity,但是那也不起作用。我也尝试通过Azure Powershell运行,但这没什么作用

在我的管道的一部分中,我使用工具安装程序任务来安装Java JDK,我要做的就是将服务连接传递给它,并且它没有问题。 JDK和安装程序都在同一个Blob中,因此我可以以某种方式使用服务连接进行身份验证吗?

1 个答案:

答案 0 :(得分:1)

您可以尝试在Azure cli任务中执行az storage blob download命令以从Azure Blob存储下载文件:

steps:
- task: AzureCLI@1
  displayName: 'Azure CLI '
  inputs:
    azureSubscription: {service connection}
    scriptLocation: inlineScript
    inlineScript: |
     mkdir $(Build.SourcesDirectory)\BlobFile
     az storage blob download --container-name $(containername) --file $(Build.SourcesDirectory)\BlobFile --name "{file name}" --account-key $(accountkey) --account-name $(accountname)

使用mkdir在当前目录中创建一个文件夹,然后从blob下载文件并将其保存到该文件夹​​中。服务连接已集成到此任务中,因此您可以配置服务连接以连接到Azure blob。然后在此Azure cli任务中选择它。