2016-08-11 3 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 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 "......"