2016-08-11 4 views
1

Ich versuche, eine Tags mit Boto3 abrufen, aber ich laufe ständig in den ListIndex außerhalb des Bereichs Fehler.Das Abrufen von RDS-Tags mit Boto3 führt zu einem Indexfehler.

Mein Code:

rds = boto3.client('rds',region_name='us-east-1') 
rdsinstances = rds.describe_db_instances() 
for rdsins in rdsinstances['DBInstances']: 
     rdsname = rdsins['DBInstanceIdentifier'] 
     arn = "arn:aws:rds:%s:%s:db:%s"%(reg,account_id,rdsname) 
     rdstags = rds.list_tags_for_resource(ResourceName=arn)    
     if 'MyTag' in rdstags['TagList'][0]['Key']: 
      print "Tags exist and the value is:%s"%rdstags['TagList'][0]['Value'] 

Der Fehler, die ich habe ist:

Traceback (most recent call last): 
    File "rdstags.py", line 49, in <module> 
    if 'MyTag' in rdstags['TagList'][0]['Key']: 
IndexError: list index out of range 

Ich habe auch versucht, für Schleife die Verwendung durch den Bereich spezifiziert, es schien nicht zu funktionieren.

for i in range(0,10): 
    print rdstags['TagList'][i]['Key'] 

Jede Hilfe wird geschätzt. Vielen Dank!

Antwort

0

Sie sollten erste Liste von Tags iterieren und vergleichen MyTag mit jedem Element unabhängig: etwas wie folgt aus:

if 'MyTag' in [tag['Key'] for tag in rdstags['TagList']]: 
    print "Tags exist and.........." 

oder besser:

for tag in rdstags['TagList']: 
    if tag['Key'] == 'MyTag': 
     print "......" 
Verwandte Themen