0

我有一个存储 CSV 文件的 S3 存储桶。新的 CSV 文件会在每个月初添加到此存储桶中。我希望这些新文件在每个月初自动上传到 Azure Blob 存储。

我想这样做的方法是创建一个脚本(bash/PowerShell),通过AZ Copy命令将数据从 AWS S3 存储桶拉到 Azure blob 存储。然后将此脚本插入 Azure YAML 管道,该管道在每个月初运行以执行此脚本。但我找不到将此脚本集成到 Azure YAML 管道中的方法。此命令对 YAML 管道是否可行?或者有什么简单的方法可以做到这一点?

4

1 回答 1

1

我们可以使用 azcopy 将数据从 S3 存储桶复制到 Azure Blob 存储。

azcopy copy "<s3-bucket-uri>" "https://StorageAccountName.blob.core.windows.net/container-name/?sas-token" --recursive

我们可以将 azcopy 与 YAML 管道集成。

首先,在管道代理中安装 azcopy,如下所示:

- task: Bash@3
  displayName: Install azcopy
  inputs:
    targetType: 'inline'
    script: |
      curl -sL https://aka.ms/InstallAzureCLIDeb | sudo bash
      mkdir $(Agent.ToolsDirectory)/azcopy
      wget -O $(Agent.ToolsDirectory)/azcopy/azcopy_v10.tar.gz https://aka.ms/downloadazcopy-v10-linux
      tar -xf $(Agent.ToolsDirectory)/azcopy/azcopy_v10.tar.gz -C $(Agent.ToolsDirectory)/azcopy --strip-components=1

在管道中使用 azcopy 创建 cli-task,以使用 azcopy将数据从 S3 存储桶复制到 Azure Blob 存储

参考代码 :

- task: AzureCLI@2
  displayName: Download using azcopy
  inputs:
    azureSubscription: 'Service-Connection'
    scriptType: 'bash'
    scriptLocation: 'inlineScript'
    inlineScript: |
      end=`date -u -d "180 minutes" '+%Y-%m-%dT%H:%M:00Z'`
      $(Agent.ToolsDirectory)/azcopy/azcopy copy "<s3-bucket-uri>" "https://StorageAccountName.blob.core.windows.net/container-name/?sas-token" --recursive --check-md5=FailIfDifferent

参考 SO 线程:Azure Pipelines - 使用 azcopy 下载文件 - VoidCC

于 2021-09-30T11:55:49.347 回答