Получить комбинацию определенных тегов / значений AWS EC2 идентификатор экземпляра

#python #python-3.x #aws-lambda #boto3

#python #python-3.x #aws-lambda #boto3

Вопрос:

Я новичок в Python и программировании. Мне нужно создать лямбда-функцию с использованием Python 3.7, которая будет искать определенную комбинацию тегов / значений и возвращать значение тега вместе с идентификатором экземпляра. Я могу получить оба с моим текущим кодом, но мне трудно понять, как их объединить. boto3.resource дает мне значение тега, а boto3.client дает мне идентификатор экземпляра.

У меня есть экземпляры EC2 (1000), где нам нужно отслеживать значение тега для тега ‘expenddate’ и сравнивать значение (мм / дд / гг) с текущей датой (мм / дд / гг) и предупреждать, когда значение ‘expenddate’ меньше текущей даты.

 
    import boto3
    import collections
    import datetime
    import time
    import sys

    from datetime import date as dt

    def lambda_handler(event, context):
        today = datetime.date.today()
        mdy = today_string = today.strftime('%m/%d/%y')
        ec2 = boto3.resource('ec2')
        for instance in ec2.instances.all():
            if instance.tags is None:
                continue
            for tag in instance.tags:
                if tag['Key'] == 'expenddate':
                    if (tag['Value']) <= mdy:
                        print ("Tag has expired!!!!!!!!!!!")
                    else:
                        print ("goodby")
        client = boto3.client('ec2')
        resp = client.describe_instances(Filters=[{
            'Name': 'tag:expenddate',
            'Values': ['*']
        }])

        for reservation in resp['Reservations']:
            for instance in reservation['Instances']:
                print("InstanceId is {} ".format(instance['InstanceId']))
 

Я хочу получить комбинированный идентификатор экземпляра и значение тега или две переменные, которые я могу объединить позже.

Ответ №1:

изменить

 print ("Tag has expired!!!!!!!!!!!")
 

Для

 # initialise array 
expiredInstances=[]
.
.
.
.
.
print ("%s has expired" % instance.id)
expiredInstances.append({'instanceId':instance.id,'tag-value':tag['Value']})
 

Это даст вам массив идентификаторов экземпляров со значениями тегов