微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

azure devops 中的 azcopy 任务让我无法枚举目录,但不知道为什么

如何解决azure devops 中的 azcopy 任务让我无法枚举目录,但不知道为什么

大家好,我花了很多时间,我无法弄清楚为什么 azcopy 可以在一个步骤中工作,而在包装在一个阶段时却不能。我需要使用阶段工作,见下文。注释掉的代码在使用阶段时不起作用。

错误

解析源位置时出错“d:a\1\s\etc....无法枚举目录

我注意到

当使用阶段日志

Azcopy\Azcopy.exe" /Source:"D:\a\1\s\src\Dev\settings\AppSettings.json

仅使用 step 时

Azcopy\Azcopy.exe" /Source:"D:\a\1\s\src\Dev\settings

        trigger:
        - none

        variables:
        - group: AppVariables
        - group: AppVariables2
        - name: workingdirectory
          value: '$(System.DefaultWorkingDirectory)/$(AppSettingsJson)'

        resources:
          repositories:
            - repository: templates
              type: git
              name: Dev/Core

        # stages:
        # - stage: upload_Dev_File
        #   displayName: 'Upload File'
        #   jobs:
        #   - deployment: DevDeploy
        #     pool:
        #       vmImage: 'windows-latest'
        #     environment: $(DevEnvironment)
        #     strategy:
        #       runOnce:
        #         deploy:
        #          steps:
        #           - task: AzureFilecopy@3
        #             displayName: 'Deploy file to blob storage'
        #             inputs:
        #               SourcePath: $(workingdirectory)
        #               azureSubscription: '$(MyAzureSubscription)'
        #               Destination: AzureBlob
        #               storage: appStorage
        #               ContainerName: myApp    
        #               BlobPrefix: Dev/Settings

        pool:
          vmImage: 'windows-latest'


        steps:
        - task: AzureFilecopy@3
          displayName: 'Deploy file to blob storage'
          inputs:
            SourcePath: $(workingdirectory)
            azureSubscription: '$(MyAzureSubscription)'
            Destination: AzureBlob
            storage: appStorage
            ContainerName: myApp    
            BlobPrefix: Dev/Settings

我也尝试过第 2 版和第 4 版,但没有运气。如果更容易,很高兴在 powershell 中进行。关于这里出了什么问题有什么建议吗?

非常感谢

解决方法

我在解析源位置时遇到错误“d:a\1\s\etc.... 失败 枚举目录

对于这个问题,我认为代理在 s 文件夹中找不到文件。这是因为当阶段运行时,会使用一个新的代理来运行它。

以下是我对这个问题的重现:

enter image description here

作为解决方法,我们需要在阶段中添加一个 checkout 步骤。

- stage: upload_Dev_File
  displayName: 'Upload File'
  jobs:
  - deployment: DevDeploy
    pool:
      vmImage: 'windows-latest'
    environment: $(DevEnvironment)
    strategy:
      runOnce:
        deploy:
          steps:
          - checkout: RepoName
          - task: AzureFileCopy@3
            displayName: 'Deploy file to blob storage'
            inputs:
              SourcePath: '$(workingdirectory)'
              azureSubscription: '$(MyAzureSubscription)'
              Destination: 'AzureBlob'
              storage: 'appStorage'
              ContainerName: 'myApp'
              BlobPrefix: 'Dev/Settings'

添加结帐步骤后,效果很好:

enter image description here

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。