route53을 쿼리하고 IP와 각 서버 호스트 이름의 일부인 "서버 역할"을 얻기 위해 boto3을 사용하는 Python 코드를 작성하고 싶습니다.특정 정보를 표시하기 위해 route53-list-record의 출력을 포맷하려면 어떻게합니까?
저는 파이썬에 매우 익숙하며, 출력물을 포맷하는데 문제가 있습니다.
#!/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)
출력이 너무과 같습니다 : 그래서
{u'ResourceRecords': [{u'Value': 'ns-512.awsdns-00.net.'}, {u'Value': 'ns-1536.awsdns-00.co.uk.'}, {u'Value': 'ns-0.awsdns-00.com.'}, {u'Value': 'ns-1024.awsdns-00.org.'}], u'Type': 'NS', u'Name': 'vpc-XXXXXXXX.eu-west-1.company.private.', u'TTL': 172800}
{u'ResourceRecords': [{u'Value': 'ns-1536.awsdns-00.co.uk. awsdns-hostmaster.amazon.com. 1 7200 900 1209600 86400'}], u'Type': 'SOA', u'Name': 'vpc-XXXXXXXX.eu-west-1.company.private.', u'TTL': 900}
{u'ResourceRecords': [{u'Value': '172.58.38.137'}], u'Type': 'A', u'Name': 'dev-analytics1.vpc-XXXXXXXX.eu-west-1.company.private.', u'TTL': 300}
{u'ResourceRecords': [{u'Value': '172.58.17.224'}], u'Type': 'A', u'Name': 'dev-analytics2.vpc-XXXXXXXX.eu-west-1.company.private.', u'TTL': 300}
{u'ResourceRecords': [{u'Value': '172.58.32.16'}], u'Type': 'A', u'Name': 'dev-api1.vpc-XXXXXXXX.eu-west-1.company.private.', u'TTL': 300}
{u'ResourceRecords': [{u'Value': '172.58.26.94'}], u'Type': 'A', u'Name': 'dev-api2.vpc-XXXXXXXX.eu-west-1.company.private.', u'TTL': 300}
{u'ResourceRecords': [{u'Value': '172.58.14.88'}], u'Type': 'A', u'Name': 'dev-api4.vpc-XXXXXXXX.eu-west-1.company.private.', u'TTL': 300}
{u'ResourceRecords': [{u'Value': '52.154.154.22'}], u'Type': 'A', u'Name': 'dev-bastion.vpc-XXXXXXXX.eu-west-1.company.private.', u'TTL': 300}
{u'ResourceRecords': [{u'Value': '172.58.41.124'}], u'Type': 'A', u'Name': 'dev-batch1.vpc-XXXXXXXX.eu-west-1.company.private.', u'TTL': 300}
{u'ResourceRecords': [{u'Value': '172.58.39.163'}], u'Type': 'A', u'Name': 'dev-cassandra1.vpc-XXXXXXXX.eu-west-1.company.private.', u'TTL': 300}
{u'ResourceRecords': [{u'Value': '172.58.14.5'}], u'Type': 'A', u'Name': 'dev-cassandra2.vpc-XXXXXXXX.eu-west-1.company.private.', u'TTL': 300}
{u'ResourceRecords': [{u'Value': '172.58.31.112'}], u'Type': 'A', u'Name': 'dev-cassandra3.vpc-XXXXXXXX.eu-west-1.company.private.', u'TTL': 300}
{u'ResourceRecords': [{u'Value': '172.58.38.137'}], u'Type': 'A', u'Name': 'dev-kafka-10.vpc-XXXXXXXX.eu-west-1.company.private.', u'TTL': 300}
{u'ResourceRecords': [{u'Value': '172.58.41.124'}], u'Type': 'A', u'Name': 'dev-kafka-20.vpc-XXXXXXXX.eu-west-1.company.private.', u'TTL': 300}
{u'ResourceRecords': [{u'Value': '172.58.32.16'}], u'Type': 'A', u'Name': 'dev-kafka-30.vpc-XXXXXXXX.eu-west-1.company.private.', u'TTL': 300}
{u'ResourceRecords': [{u'Value': '172.58.26.94'}], u'Type': 'A', u'Name': 'dev-kafka-31.vpc-XXXXXXXX.eu-west-1.company.private.', u'TTL': 300}
{u'ResourceRecords': [{u'Value': 'dev-mysql-14-vpc-XXXXXXXX.c1te7xcziik1.eu-west-1.rds.amazonaws.com'}], u'Type': 'CNAME', u'Name': 'dev-mysql.vpc-XXXXXXXX.eu-west-1.company.private.', u'TTL': 300}
지금은 "이라는 단어를 포함하는 모든 라인 출력에서 제거하기 위해 노력하고있어
내 현재 코드는 다음처럼 보이는 kafka ", CNAME 및 NS 레코드를 사용하여"list_resource_record_sets() "에서 필터를 구성한 이유가 처음에 왜 표시되는지 이해할 수 없습니다.
그런 다음, 예를 들어이 각 호스트 이름에서 :
Name': 'dev-cassandra3.vpc-XXXXXXXX.eu-west-1.company.private.'
서버 역할은 문자열 "카산드라"또는 다른 서버에있을 것입니다 : 분석, API, 요새, 등 ...과를 IP는 "가치"가 될 것입니다. 이 방법을
172.58.31.112 : cassandra
52.154.154.22 : bastion
를 수행됩니다
그래서 나는 그렇게 모양을 텍스트 목록을 작성하는 코드를 하시겠습니까? 내 문제는 내가 "가치"에 액세스하는 방법을 모르는 것 같아요 ...