मैं कोशिश कर रहा हूँ डाउनलोड करने के लिए सभी ARNs के साथ विशिष्ट टैग के साथ boto3 और ResourceGroupsTaggingAPI. मैं कर रहा हूँ छानने पर दो टैग, और 8 अलग अलग ARNs जब मैं मिलना चाहिए अधिक से अधिक 80 ARNs.
**संपादित करें:**मैं बाहर सोचा है कि यह की वजह से एक एपीआई सीमा है. दस्तावेज के अनुसार, एपीआई लाने के लिए अनुमति देता टैग क्षेत्र से आप वर्तमान में कर रहे हैं का उपयोग कर. वहाँ किसी भी तरह से लाने के लिए टैग सभी क्षेत्रों से?
import boto3
import csv
class TagEditor:
def writeToCsv(self,writer, tag_list):
for resource in tag_list:
for tag in resource['Tags']:
row = dict(
ResourceArn=resource['ResourceARN'], TagKey=tag['Key'], TagValue=tag['Value'])
writer.writerow(row)
def main(self):
field_names = ['ResourceArn', 'TagKey', 'TagValue']
s3 = boto3.client('s3')
restag = boto3.client('resourcegroupstaggingapi')
with open('/tmp/tags.csv', 'w') as csvfile:
writer = csv.DictWriter(csvfile, quoting=csv.QUOTE_ALL,
delimiter=',', dialect='excel', fieldnames=field_names)
writer.writeheader()
# Filter for tag1
response_deployment = restag.get_resources(TagFilters=[{'Key':'tag1'}],ResourcesPerPage=100)
self.writeToCsv(writer, response_deployment['ResourceTagMappingList'])
while 'PaginationToken' in response_deployment and response_deployment['PaginationToken']:
token = response_deployment['PaginationToken']
response_deployment = restag.get_resources(TagFilters=[{'Key':'tag1'}], ResourcesPerPage=100, PaginationToken=token)
self.writeToCsv(writer, response_deployment['ResourceTagMappingList'])
# Filter for tag2
response_deployment = restag.get_resources(TagFilters=[{'Key':'tag2'}],ResourcesPerPage=100)
self.writeToCsv(writer, response_deployment['ResourceTagMappingList'])
while 'PaginationToken' in response_deployment and response_deployment['PaginationToken']:
token = response_deployment['PaginationToken']
response_deployment = restag.get_resources(TagFilters=[{'Key':'tag2'}], ResourcesPerPage=100, PaginationToken=token)
self.writeToCsv(writer, response_deployment['ResourceTagMappingList'])
s3.upload_file('/tmp/tags.csv', Bucket = 'my-bucket', Key = 'tags.csv')