如何从 Azure DevOps Pipeline 读取 Azure 文件共享文件

Posted

技术标签:

【中文标题】如何从 Azure DevOps Pipeline 读取 Azure 文件共享文件【英文标题】:How to Read Azure File Share Files from Azure DevOps Pipeline 【发布时间】:2020-11-06 09:24:30 【问题描述】:

我目前已经创建了一个 Azure 存储帐户。在这个存储中,我创建了两个文件共享。我已将文件上传到每个文件共享中,并希望从 Azure DevOps 管道中访问这些文件。

我在网上研究了如何做到这一点,但没有找到详细说明如何做到这一点的资源。有没有人这样做过?如果是,从 azure devOps 管道读取文件共享文件的步骤是什么?

谢谢。

人们问

【问题讨论】:

Stack Overflow 不是代码编写服务。在寻求帮助之前,您需要自己做出合理的尝试来解决问题。 不需要被动攻击性的陈述,因为它不能解决问题,只会造成紧张,让你在社区中看起来很糟糕。 这个问题很好,因为在这种情况下你无法编写代码,当你无法弄清楚解决问题的方法时。顺便说一句:我今天脑子里也有完全相同的问题。感谢您提出这个问题和答案(-: 【参考方案1】:

希望从 Azure DevOps 管道中访问这些文件

您可以尝试使用 AzCopy 命令 将这两个文件共享从 Azure blob 复制/下载到 Azure DevOps Pipeline:

azcopy login
azcopy copy /Source:https://myaccount.file.core.windows.net/myfileshare/myfolder/ /Dest:$(Build.SourcesDirectory)\myfolder

您可以在此文档中找到更多信息:

Quickstart: Upload, download, and list blobs with PowerShell

【讨论】:

谢谢利奥。将查看此资源。【参考方案2】:

我找到了使用Microsoft Azure File Share Storage Client Library for Python 的解决方案。我在 Azure 管道中运行了以下步骤以连接到我的文件共享。下面是一个连接到文件共享并共享其所有内容的示例:

    - task: UsePythonVersion@0
      displayName: 'Set Python 3.8.3'
      inputs:
        versionSpec: 3.8.3
        addToPath: true
      name: pyTools

    - script: $(pyTools.pythonLocation)/bin/pip3 install azure-storage-file-share
      displayName: Install azure-storage-file-share module
        
    - task: PythonScript@0
      displayName: Show files and directories inside of File Share
      inputs:
        scriptSource: 'inline'
        script: |
          import platform
          from azure.storage.fileshare import ShareDirectoryClient

          connection_string = "DefaultEndpointsProtocol=https;AccountName=<storage-name>;AccountKey=<access-key>==;EndpointSuffix=core.windows.net"
          parent_dir = ShareDirectoryClient.from_connection_string(conn_str=connection_string, share_name=<file-share-name>, directory_path="")

          my_list = list(parent_dir.list_directories_and_files())
          print(my_list)
          print(platform.python_version()

【讨论】:

太棒了!感谢您在这里分享您的解决方案,您可以 Accept it as an Answer ,这样它可以帮助遇到相同问题的其他社区成员,我们可以归档这个帖子,谢谢。

以上是关于如何从 Azure DevOps Pipeline 读取 Azure 文件共享文件的主要内容,如果未能解决你的问题,请参考以下文章

azure devops 中的 Pipeline 和 Release Pipeline 有啥区别?

创建自包含部署时如何解决 Azure Devops Pipeline 中的目标问题

Azure DevOps Pipeline构建代理:如何在程序集引用HintPath中使用或替换$(DevEnvDir)?

在我的 Azure DevOps YAML Pipeline 中,如何将一堆阶段转换为作业矩阵?

当我的 linting 脚本返回错误时,如何让我的 Azure DevOps Pipeline 构建失败?

Azure DevOps Build Pipeline:如何仅为更改的程序集增加程序集版本?