【问题标题】:S3 Sync issue running in azure devops pipeline on linux在 Linux 上的 azure devops 管道中运行的 S3 同步问题
【发布时间】:2020-11-24 18:01:39
【问题描述】:

我也直接在项目的 GitHub 上问过,不过看的人比较多,我也试试看。

通过将下面的 [ ] 更改为 [x] 来确认:

问题是关于以下用途的:

  • [x] Service API : 我想用 Y 服务做 X,我应该怎么做?
  • [ ] CLI : 传递参数或 cli 配置。
  • [ ] 其他/不确定。

平台/操作系统/硬件/设备 你在什么上运行cli? 我在 ubuntu-latest(当前是 ubuntu-18.04)上运行 CLI,我也尝试过使用 ubuntu-20.04。 这在我的 azure devops 上的 CD 中使用

描述问题 我继续运行以下命令命令作为我的 CD 管道的一部分,它一直失败并显示 255 错误代码。当我使用相同的用户配置文件在我的机器上本地运行相同的命令时,它可以工作。我的本地机器是 macOS 10.15。

aws s3 sync /mybuildartifact/ s3://bucketName/subDir/ --delete --profile myUserProfile --debug

我已确保检查 CLI 是否正确安装了用户配置文件以及该命令是否有权访问它。我使用以下命令设置用户配置文件并检查它是否存在(我正在使用相同的方法在本地测试)

aws configure import --csv file://$(serviceUserCredentials.secureFilePath)
aws configure list-profiles

日志/输出 通过在命令中添加 --debug 来获取完整的回溯和错误日志。

2020-11-24 16:24:11,346 - MainThread - botocore.hooks - 调试 - 事件 load-cli-arg.custom.sync.metadata:调用处理程序 2020-11-24 16:24:11,346 - MainThread - botocore.hooks - 调试 - 事件 load-cli-arg.custom.sync.copy-props:调用处理程序 2020-11-24 16:24:11,346 - MainThread - botocore.hooks - 调试 - 事件 process-cli-arg.custom.sync:调用处理程序 2020-11-24 16:24:11,346 - MainThread - botocore.hooks - 调试 - 事件 load-cli-arg.custom.sync.metadata-directive:调用处理程序 2020-11-24 16:24:11,346 - MainThread - botocore.hooks - 调试 - 事件 load-cli-arg.custom.sync.size-only:调用处理程序 2020-11-24 16:24:11,346 - MainThread - botocore.hooks - 调试 - 事件 process-cli-arg.custom.sync:调用处理程序 2020-11-24 16:24:11,346 - MainThread - botocore.hooks - 调试 - 事件 load-cli-arg.custom.sync.exact-timestamps:调用处理程序 2020-11-24 16:24:11,346 - MainThread - botocore.hooks - 调试 - 事件 process-cli-arg.custom.sync:调用处理程序 2020-11-24 16:24:11,346 - MainThread - botocore.hooks - 调试 - 事件 load-cli-arg.custom.sync.delete:调用处理程序 2020-11-24 16:24:11,346 - MainThread - botocore.hooks - 调试 - 事件 process-cli-arg.custom.sync:调用处理程序 2020-11-24 16:24:11,346 - 主线程 - botocore.utils - 调试 - IMDS 端点:http://169.254.169.254/ 2020-11-24 16:24:11,349 - MainThread - urllib3.connectionpool - 调试 - 开始新的 HTTP 连接 (1): 169.254.169.254:80 2020-11-24 16:24:11,351-主线程-urllib3.connectionpool-调试-http://169.254.169.254:80“PUT /latest/api/token HTTP/1.1”400 11 2020-11-24 16:24:11,351 - MainThread - awscli.clidriver - 调试 - 在 main() 中捕获异常 回溯(最近一次通话最后): 文件“awscli/clidriver.py”,第 453 行,在 main 调用中的文件“awscli/customizations/commands.py”,第 198 行 调用中的文件“awscli/customizations/commands.py”,第 191 行 _run_main 中的文件“awscli/customizations/s3/subcommands.py”,第 709 行 _run_main 中的文件“awscli/customizations/s3/subcommands.py”,第 480 行 文件“awscli/customizations/s3/subcommands.py”,第 473 行,在 get_client 中 文件“botocore/session.py”,第 778 行,在 create_client _resolve_region_name 中的文件“botocore/session.py”,第 827 行 文件“botocore/session.py”,第 237 行,在 get_config_variable 中 文件“botocore/configprovider.py”,第 289 行,在 get_config_variable 中 文件“botocore/configprovider.py”,第 386 行,在提供 文件“awscli/utils.py”,第 60 行,在提供 _get_instance_metadata_region 中的文件“awscli/utils.py”,第 65 行 文件“awscli/utils.py”,第 105 行,retrieve_region _get_region 中的文件“awscli/utils.py”,第 114 行 _fetch_metadata_token 中的文件“botocore/utils.py”,第 298 行 botocore.utils.BadIMDSRequestError:

【问题讨论】:

  • I keep running the following command command as part of my CD pipeline and it keeps failing with 255 error code. When I run the same command locally on my machine with the same user profile, it works. Azure DevOps 使用项目集合服务帐户在管道中运行命令。请确保它具有足够的权限,与您的本地帐户相同。
  • 就像我说的,我使用的是完全相同的用户配置文件。我用贡献者对 GitHub 上的存储库的回答回答了我的问题。

标签: amazon-s3 azure-devops aws-cli


【解决方案1】:

所以我在 GitHub 上收到了一个回复,该回复将我链接到另一个问题,该问题与网络是如何完成的某些原因有关。有关更多详细信息,您可以查看以下问题:

https://github.com/aws/aws-cli/issues/5623

在某些情况下,例如在 Azure 实例上运行 AWS CLI 时,另一个服务可以在 IMDS 使用的同一不可路由 IP 地址上运行。解决此问题的一种方法是显式设置区域。

只要我为我用来运行命令的配置文件设置了一个区域,它就起作用了。

这也解释了为什么我在本地运行没有问题。

【讨论】:

  • 感谢分享。您可以标记它,以防其他人遇到同样的错误消息。
猜你喜欢
  • 2019-08-04
  • 1970-01-01
  • 2020-08-06
  • 2022-11-03
  • 1970-01-01
  • 2020-04-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多