【问题标题】:How to set retry for "aws s3 cp" command?如何为“aws s3 cp”命令设置重试?
【发布时间】:2018-06-25 22:39:45
【问题描述】:

我有一个 jenkins 工作,它将一个非常小的 bash 文件(小于

upload failed: build/xxxxxxx/test.sh The read operation timed out

以上错误直接来自 aws cli 操作。我在想,这可能是一些网络问题,或者当时磁盘读取操作不可用。如果发生这种情况,如何设置重试选项?另外,我可以增加超时吗?我搜索了 cli 文档、谷歌搜索并检查了“aws s3api”,但没有看到任何这样的选项。

如果不存在这样的选项。那么,人们如何解决这个问题?包装命令检查错误代码并重新尝试?

【问题讨论】:

  • 您能否将 --debug 添加到您的 CLI 命令并在收到此错误时发布输出?
  • 不知道什么时候会再次出现错误,因为它偶尔会发生。

标签: amazon-web-services amazon-s3 aws-cli


【解决方案1】:

最终围绕 s3 命​​令编写包装器以重试并在最后一次尝试时获取调试堆栈。可能会对大家有所帮助。

# Purpose: Allow retry while uploading files to s3 bucket
# Params:
#   \$1 : local file to copy to s3
#   \$2 : s3 bucket path
#   \$3 : AWS bucket region
#
function upload_to_s3 {
    n=0
    until [ \$n -gt 2 ]
    do
        if [ \$n -eq 2 ]; then
            aws s3 cp --debug \$1 \$2 --region \$3
            return \$?
        else
            aws s3 cp \$1 \$2 --region \$3 && break
        fi
        n=\$[\$n+1]
        sleep 30
   done
}

【讨论】:

    猜你喜欢
    • 2018-09-16
    • 2021-12-23
    • 1970-01-01
    • 1970-01-01
    • 2023-02-09
    • 1970-01-01
    • 1970-01-01
    • 2021-02-19
    • 1970-01-01
    相关资源
    最近更新 更多