AWS - создание AMI с использованием тегов экземпляра EC2 для присвоения имени AMI

Я пытаюсь сделать что-то, что я считаю очень простым, но я не эксперт по Python, поэтому мне нужна ваша помощь в этом, позвольте мне показать вам, что я пытаюсь сделать:

У меня есть эта часть кода, которую я нашел и работает очень хорошо, но я пытаюсь немного ее изменить:

AMIid = ec.create_image(InstanceId=instance['InstanceId'], Name="BKP - " + **instance['InstanceId']** + " from " + create_fmt, Description="Lambda created AMI of instance " + instance['InstanceId'] + " from " + create_fmt, NoReboot=True, DryRun=False)

Я пытаюсь добавить TAG "Имя" из моих экземпляров EC2 в поле "Имя" нового AMI, который создается, что-то вроде этого:

AMIid = ec.create_image(InstanceId=instance['InstanceId'], Name="BKP - " + **Tags=[Key:"Name",'Value']** + " from " + create_fmt, Description="Lambda created AMI of instance " + instance['InstanceId'] + " from " + create_fmt, NoReboot=True, DryRun=False)

Есть идеи, как это сделать?

Редактирование: Я нашел решение для этого, возможно, это не лучший способ, но сработало, следуйте тому, что я сделал до сих пор:

Создана переменная для получения имени тега EC2:

nameTag = "".join([str(t.get('Value')) for t in instance['Tags'] if t['Key'] == 'Name'])

Затем включил переменную nameTag в код:

AMIid = ec.create_image(InstanceId=instance['InstanceId'], Name="BKP - " + **nameTag** + " from " + create_fmt, Description="Lambda created AMI of instance " + instance['InstanceId'] + " from " + create_fmt, NoReboot=True, DryRun=False)

Надеюсь, что это может помочь большему количеству людей, которым нужно что-то подобное!

Спасибо!

0 ответов

Не уверен, что это будет полезно, так как это сообщение уже двухлетней давности, но тем не менее

details = ec.describe_instances(InstanceIds=[instance['InstanceId']])
            for tags in details['Reservations'][0]['Instances'][0]['Tags']:
                if tags['Key'] == "Name":
                    instance['Name'] = tags['Value']

            print("Instance Name:" + instance['Name'])

Приведенный выше скрипт даст вам имя экземпляра

Другие вопросы по тегам