【问题标题】:AWS CLI command list for checking limits?用于检查限制的 AWS CLI 命令列表?
【发布时间】:2018-07-26 15:16:01
【问题描述】:

我正在开展一个项目,在该项目中,我们的部署管道的一个部分很容易需要长达一个小时才能部署到 AWS。我们的管道中有大约 30 个步骤,而启动新环境的主要时间杀手之一是达到 AWS 中的随机限制。我在他们的网站上搜索了检查限制,并找到了一些针对特定环境的选择命令,但是是否有命令(如果有,它们的列表)可以检查每个限制,例如“NatGatewayLimitExceeded”?如果我能在我们浪费时间旋转半个实例以被类似的东西阻塞之前制作一个检查所有限制的脚本,那就太好了。提前谢谢!

【问题讨论】:

  • 您是否考虑过联系 AWS 以提高或取消限制?
  • 有限制是一件好事,它们不是问题。我们一直在抚养他们。我想检查一下我们的下一个部署步骤是否会在运行 45 分钟之前尝试超过限制并因为达到限制而中断。如果它坏了,我想让它在一开始就坏掉,这样它就不需要回滚和浪费时间了。
  • 好点。我没有那样想。这个开源项目可能会有所帮助:awslimitchecker.readthedocs.io/en/latest
  • 这绝对是很好的参考,谢谢。虽然我希望使用原生 awscli 命令。
  • AWS 为开发人员提供了大量的信息。有时,显而易见的事情会被忽略。根据我的经验,AWS 确实关注市场需求。尝试打开支持票以查看是否有测试版。

标签: bash amazon-web-services command-line-interface aws-cli


【解决方案1】:

来自here 他们说如果你有 AWS 高级支持,你可以这样做:

CHECK_ID=$(aws --region us-east-1 support describe-trusted-advisor-checks \
  --language en --query 'checks[?name==`Service Limits`].{id:id}[0].id' \
  --output text)
aws support describe-trusted-advisor-check-result --check-id "$CHECK_ID" \
  --query 'result.sort_by(flaggedResources[?status!="ok"],&metadata[2])[].metadata' \
  --output table --region us-east-1

如果您没有 AWS 高级支持,我将其破解:

awscommands=($(COMP_LINE='aws' aws_completer))
for command in "${awscommands[@]}"; do COMP_LINE="aws $command" \
  aws_completer | xargs -n1 -I% printf "aws $command %\n"; done | grep limit | \
  bash 2>/dev/null

这使用 AWS 自己的 bash 完成程序来查找所有可能的 aws 命令(在您的环境中进行了必要的修改),然后是那些名称中带有“limit”的命令的所有子命令,然后运行它们。其中一些“限制”子命令具有必需的选项;我的技巧没有考虑到这些,它们只是出错了,所以我将 stderr 重定向到 /dev/null。因此结果是不完整的。欢迎提出改进建议。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-09-29
    • 2011-06-12
    • 2015-12-24
    • 2023-01-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多