簡體   English   中英

是否可以使用 AWS CLI 配置重試?

[英]Is it possible to configure retries with the AWS CLI?

我有一個腳本,它使用 AWS CLI(當前為 v1.11.90)來協調各種 AWS 資源。 除其他外,它aws cloudformation list-stacks三到四次調用aws cloudformation list-stacks

我經常遇到錯誤,因為我的請求受到限制:

An error occurred (Throttling) when calling the ListStacks operation (reached max retries: 4): Rate exceeded

特別是如果我碰巧在瀏覽器中打開了 CloudFormation 控制台,這種情況會非常可靠。

我想將它配置為在這些情況下更寬容——要么更積極地退縮,要么重試更多次。 我試圖找到一種方法來做到這一點,並且看到了一些關於能夠在boto做到這一點的參考資料,但我看不到如何通過 CLI 做到這一點。

似乎您正在將ListStack用於 cloudformation 服務,可能會實現輪詢和重試,現在 CLI 中內置了一個更簡單的解決方案: aws <service> wait <condition>所以輪詢已經實現。

$ aws cloudformation wait stack-exists --stack-name <name of the stack>

其他答案很好,但要回答准確的問題:是的,定義環境變量AWS_MAX_ATTEMPTS

請參閱https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-envvars.html

如果您正在創建一些資源並等待該資源成功創建,AWS cli 提供了等待模塊 [1] 由於您想重試錯誤,您可以使用 while 或 until 進行重試。 下面的代碼將一直運行,直到命令成功。

while [ $? -ne 0 ]; do
YOUR COMMAND
GOOD CONDITION TO EXIT AFTER SOME RETRIES 
done

確保您在重試后使用良好的條件退出,否則將以無限循環結束。

[1] http://docs.aws.amazon.com/cli/latest/reference/cloudformation/wait/index.html

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM