+def tagsOfInstances(ec2c, InstanceIds=None):
+ tags = {}
+ args = {'Filters': [{'Name': 'resource-type', 'Values': ["instance"]}]}
+ if InstanceIds:
+ args['Filters'] += [{'Name': 'resource-id', 'Values': InstanceIds}]
+ while True:
+ response = ec2c.describe_tags(**args)
+ for tag in response['Tags']:
+ tagname = "tag_{}_{}".format(tag['Key'], tag['Value'])
+ tagvalue = tag['ResourceId']
+ tags.setdefault(tagname, []).append(tagvalue)
+ if 'NextToken' not in response:
+ break
+ args['NextToken'] = response['NextToken']
+ return tags
+
+