创建后使用 Boto Route53 检查 A 记录状态

Check A-Record Status using Boto Route53 after creation

我正在寻找一种方法来获取刚刚使用 route53 创建的记录 (A-NAME) 的状态。这是代码:

    changes = ResourceRecordSets(conn, "ZONEID")
    change = changes.add_change("STRING FOR ADD NEW SUBDOMAIN")
    change.add_value(MY_IP)
    action = changes.commit()
    j=json.loads(json.dumps(action))
    status = j['ChangeResourceRecordSetsResponse']['ChangeInfo']['Status']
    while status == 'PENDING':
         time.sleep(5)
         action.update() #THIS ACTION RETURN "NONE" and not update the previous state

显然,如果打印状态变量,结果总是 "PENDING"

谁能帮帮我?提前致谢。

我遇到了同样的问题,这就是我解决的方法。

假设您有 A Record 的 ID,并且它在 us-west-1 区域中是 C2T9LA0WQGXVUX,那么我们有:

import boto.route53
record_id = 'C2T9LA0WQGXVUX'
REGION = 'us-west-1'
AWS_S3_ACCESS_KEY_ID = 'my aws key'
AWS_S3_SECRET_ACCESS_KEY = 'my secret key'


connection = boto.route53.connect_to_region(REGION,
    aws_access_key_id=AWS_S3_ACCESS_KEY_ID,
    aws_secret_access_key=AWS_S3_SECRET_ACCESS_KEY
)

record_status = connection.get_change(change_id=record_id)

响应将类似于:

{u'GetChangeResponse': {u'ChangeInfo': {u'Status': u'INSYNC', u'SubmittedAt': u'2017-07-10T13:05:29.350Z', u'Id': u'/change/C2T9LA0WQGXVUX'}}}

因此,您可以通过以下方式获取状态:

print record_status['GetChangeResponse']['ChangeInfo']['Status']