Как установить повтор для команды "aws s3 cp"? - PullRequest
0 голосов
/ 29 мая 2018

У меня есть работа jenkins, которая загружает довольно маленький файл bash (менее чем 1 МБ) в корзину s3.Он работает большую часть времени, но время от времени завершается с ошибкой:

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

Вышеприведенная ошибка происходит непосредственно из операции aws cli.Я думаю, это может быть проблема с сетью или операция чтения с диска недоступна в данный момент.Как установить опцию, чтобы повторить попытку, если это произойдет?Кроме того, есть ли время ожидания, которое я могу увеличить?Я искал документацию cli, гуглил и проверил 'aws s3api', но не вижу такой опции.

Если такой опции не существует. Затем, как люди обходят это?Свернуть команду, чтобы проверить код ошибки и повторить попытку?

1 Ответ

0 голосов
/ 25 июня 2018

Завершите написание оболочки вокруг команды 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
}
...