AWS boto检查安全组或其他元素是否准备就绪

Tri*_*ews 5 python boto amazon-web-services amazon-vpc

我正在用boto创建一个VPC和安全组.如果我只是在脚本中创建和标记元素,我会不断收到错误,因为元素还没有准备好.我可以直接进行手动等待,但我更喜欢拉它们以确定它们是否真的准备好了.对于VPC或子网,我可以使用类似的东西:

import boto.vpc

v = boto.vpc.VPCConnection(
    region=primary_region,
    aws_access_key_id=aws_access_key,
    aws_secret_access_key=aws_secret_key)

vpcs = v.get_all_vpcs()
print vpcs[0].state
Run Code Online (Sandbox Code Playgroud)

用一些更多的逻辑和一个while循环来检查状态是否是available,running或者其他什么.这适用于大多数vpc/aws元素,但是某些元素(如安全组)在返回时没有状态属性get_all_security_groups或等效.

人们如何检查这些元素是否可以使用?

Liy*_*ang 1

事实证明,对于没有状态属性的元素,您必须发挥创意并编写一些可能脆弱的代码。

对于安全组的具体示例,我这样做:

  1. 使用带有过滤器的 get_all_security_groups 来查找安全组。
  2. 检查 sg.rules_egress
  3. 使用指数退避重试。

当它开始失败时(我相信它会失败),我会再看看其他更好的方法,但到目前为止一直没有失败。