使用 Python 基于 status:Available 过滤或查询 AWS RDS 数据库实例的正确方法是什么?

What is the correct way of filtering or querying the AWS RDS DBInstances based on status:Available using Python?

我正在尝试使用 Python 从 AWS 控制台获取 RDS 数据库实例的数量。

我可以从 AWS RDS 获取计数,但无法根据他们的 Status: Available.

获取计数

这是我的代码:

client3 = boto3.client('rds', aws_access_key_id=access_key, 
aws_secret_access_key=secret_key,region_name=region)
rds = client3.describe_db_instances().filter(query=[{'Name': 'status', 
'Values': ['available']}])  # Throws Error as filter and query are no 
 attributes
for rdsdb in rds['DBInstances']:#['DBInstanceStatus'=='available']:
  rds_count.append(rdsdb)
f.writerow(('p_rds_count', len(rds_count)))
print("rds->" + str(len(rds_count)))

输出:

 rds = client3.describe_db_instances().filter(query=[{'Name': 'status', 
 'Values': ['available']}]) AttributeError: 'dict' object has no attribute 
 'filter'

我怎样才能做到这一点?

AWS 控制台应该是这样的:

Status
available

您可以简单地检查返回的所有实例的状态:

import boto3

rds_client = boto3.client('rds')

instances = rds_client.describe_db_instances()

available = [i['DBInstanceIdentifier'] for i in instances['DBInstances'] if i['DBInstanceStatus'] == 'available']

print len(available)