我有一个使用AWS CLI(目前为v1.11.90)协调各种AWS资源的脚本。除此之外,它连续三次或四次调用aws cloudformation list-stacks
。
我经常遇到错误,因为我的请求受到限制:
An error occurred (Throttling) when calling the ListStacks operation (reached max retries: 4): Rate exceeded
特别是如果我碰巧在我的浏览器中打开了CloudFormation控制台,这种情况非常可靠。
我想在这些情况下将其配置为更宽容 - 要么更积极地退出,要么重试更多次。我试图找到一种方法,并且已经看到了一些能够在boto
中完成此操作的参考,但我无法通过CLI了解如何执行此操作。
答案 0 :(得分:2)
似乎您正在使用ListStack
进行云数据服务,可能正在实施轮询和重试,现在在CLI中构建了一个更简单的解决方案:aws <service> wait <condition>
,因此轮询已经实现。< / p>
$ aws cloudformation wait stack-exists --stack-name <name of the stack>
答案 1 :(得分:2)
其他答案很好,但要回答准确的问题:是的,定义环境变量 AWS_MAX_ATTEMPTS
见https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-envvars.html
答案 2 :(得分:0)
如果您要创建一些资源并等待该资源成功创建,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