2016-08-11 1 views
1

boto3を使用してタグを取得しようとしていますが、ListIndexの範囲外エラーが発生しています。boto3を使用してRDSタグを取得すると、インデックスエラーが発生します。

マイコード:

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'] 

私が持っているエラーは、次のとおりです。

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 

私も範囲を指定することにより、forループを使用してみました、どちらか動作していないようでした。

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

何か助けていただければ幸いです。ありがとう!

答えて

0

あなたが最初のタグのリストを反復処理し、それぞれ独立した項目でMyTagを比較する必要があります。そのような 何か:

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

以上:

for tag in rdstags['TagList']: 
    if tag['Key'] == 'MyTag': 
     print "......" 
関連する問題