【问题标题】:VSTS Release Management: How to use Azure Blob as Artifact?VSTS 发布管理:如何使用 Azure Blob 作为工件?
【发布时间】:2016-12-25 15:38:05
【问题描述】:

在我的构建管道中,我使用了“AzureBlob 文件复制”任务,将应用程序的 Web Deploy Zip 文件上传到 Azure Blob 存储。

我想知道在发布管理中,如果可能的话,我如何从 Azure Blob 存储下载 Zip 文件并在我的发布管道中用作工件?

这是常见的做法吗?因为我想存储我的应用程序的不同构建版本。

【问题讨论】:

    标签: azure azure-devops azure-blob-storage devops azure-pipelines-release-pipeline


    【解决方案1】:

    最佳实践通常是使用任务副本并上传工件,以便将工件附加到构建本身。
    这样,您就可以在发布定义中使用它来将其部署到某个地方。
    现在,如果你想在 azure 中进行某种归档,你可以同时做这两件事,如果你需要一个工件的 url(例如,如果你正在部署一个 ARM 模板),那么上传到 azure 是最佳实践。 从技术上讲,您上传到 azure 的部分应该在发布过程中完成,因为它比构建更有意义。
    因此,回顾一下流程是构建 => 工件 => 发布 => 上传并部署到 azure。
    我希望这会有所帮助。

    【讨论】:

      【解决方案2】:

      您可以在构建定义中添加“Azure PowerShell”任务以从 Azure Blob 获取文件:

      这是一个基本的 Azure PowerShell 脚本,用于从 Blob 获取文件,您可以在 Release 中使用:

      $SubscriptionName = "Subscription Name"
      
      $StorageAccountName = "Storage Account Name"
      
      $Location = "Storage Location"
      
      $ContainerName = "ContainerName"
      
      $DestinationFolder = $env:System_DefaultWorkingDirectory
      
      Set-AzureSubscription -CurrentStorageAccountName $StorageAccountName -SubscriptionName $SubscriptionName
      
      Get-AzureStorageBlob -Container $ContainerName
      
      $blobs = Get-AzureStorageBlob -Container $ContainerName
      
      New-Item -Path $DestinationFolder -ItemType Directory -Force  
      
      $blobs | Get-AzureStorageBlobContent –Destination $DestinationFolder -Force
      

      【讨论】:

      • 这里为什么需要-Destination $env:System_DefaultWorkingDirectory? PS脚本不应该从这个工作目录自动执行吗?这是一个错误吗?
      猜你喜欢
      • 1970-01-01
      • 2016-11-22
      • 1970-01-01
      • 2019-11-09
      • 2019-02-06
      • 1970-01-01
      • 2016-09-08
      • 2019-04-29
      • 1970-01-01
      相关资源
      最近更新 更多