使用 Azure Devops Pipeline 将数据复制到没有 public 网络访问权限的存储帐户

Copy data using Azure Devops Pipeline to a storage account with no public network acces

我正在尝试使用以下指南备份 Azure DevOps 存储库:https://charbelnemnom.com/how-to-backup-azure-devops-git-repositories/

我的 YAML 文件如下:

# Starter pipeline
# Start with a minimal pipeline that you can customize to build and deploy your code.
# Add steps that build, run tests, deploy, and more:
# https://aka.ms/yaml

trigger:
  branches:
   include:
     - '*'
stages: 
- stage: _default
  jobs:
  - job: Job
    pool:
      vmImage: windows-latest
    steps:
    - task: CmdLine@2
      inputs:
        script: git clone --mirror https://PATTokenXXXX@dev.azure.com/btc-cloud/test/_git/testrepo
    - task: ArchiveFiles@2
      inputs:
       rootFolderorFile: $(System.DefaultWorkingDirectory)/testrepo.git
       includeRootFolder: true
       archiveType: zip
       archiveFile: $(Build.ArtifactStagingDirectory)/Backup.zip
    - task: AzureFileCopy@3
      displayName: AzureBlob File Copy
      inputs:
        SourcePath: $(Build.ArtifactStagingDirectory)/Backup.zip
        azureSubscription: test backup of devops repo
        Destination: AzureBlob
        storage: 'storageaccountname'
        ContainerName: 'devopsbackup'
        BlobPrefix: 'az-devops-repo-backup'

只要 Public Network AccessEnabled from all networks 上,管道就可以正常工作。但是当我禁用 public 网络访问时,管道不再工作。有没有办法实现管道以使用专用网络,也许是通过专用端点?但是由于我看不到如何将 DevOps 管道添加到专用网络的方法,所以当存储帐户禁用 public 网络访问时,我有点不知道如何使管道工作。有人可能知道该怎么做或知道备份 Azure DevOps 项目的替代方法吗?

谢谢并致以最诚挚的问候!

您需要 运行 在可以访问您的专用网络的计算机上安装代理。 通常这可以通过使用 self-hosted 代理(安装在 VM、VMSS 或容器实例上)访问您的专用网络来实现。

如果您使用 Azure DevOps,您可以从组织设置中添加新池。

默认 Azure 代理使用 public 访问权限,将无法访问仅限于专用网络的存储帐户。

您可能会找到更多详细信息here