Получить AWS EC2 специфический тег / значение комбо + идентификатор экземпляра - PullRequest
1 голос
/ 18 апреля 2019

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

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


    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 Ответ

0 голосов
/ 18 апреля 2019

изменение

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

до

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

Это даст вам массив instanceId со значениями тегов

...