我想写一个Python代码,它使用boto3查询route53并获取Ip和“服务器角色”,这是每个服务器主机名的一部分。在
我对Python非常陌生,在格式化我得到的输出时遇到了问题。在
我当前的代码如下:
#!/usr/bin/python
import boto3
region = 'eu-west-1'
hostedzoneid = 'XXXXXXXX'
stackvpcid = 'vpc-xxxxxxx'
r53client = boto3.client('route53')
response = r53client.list_resource_record_sets(
HostedZoneId=hostedzoneid,
StartRecordName='dev',
StartRecordType='A'
)
#dict = {}
for resource in response['ResourceRecordSets']:
print(resource)
输出如下:
^{pr2}$所以现在我试图从输出中删除包含单词“kafka”、CNAME和NS记录的所有行,我不明白为什么它们首先会显示,因为我在“list_resource_record_sets()”中配置了一个过滤器。在
然后,在每个主机名中,例如:
Name': 'dev-cassandra3.vpc-XXXXXXXX.eu-west-1.company.private.'
服务器角色将是字符串“cassandra”或在其他服务器中:analytics、api、bastion等。。。Ip就是“价值”。在
所以我希望代码创建一个文本列表,如下所示:
172.58.31.112 : cassandra
52.154.154.22 : bastion
怎么做的?我想我的问题是我不知道如何获取“价值”,例如。。。在
response['ResourceRecordSets']
是资源记录的列表。每个ResourceRecords都是一个字典。下面的方法应该有用,或者你可以根据自己的需要进行调整。循环查看记录并检查名称是否具有dev-([a-z]*)
模式,然后打印名称和值。在输出
^{pr2}$相关问题 更多 >
编程相关推荐