Использование Boto3 (метод ресурсов) для создания изображения - не можете добавить теги к снимкам? - PullRequest
0 голосов
/ 31 мая 2018

У меня есть этот скрипт:

#!/usr/bin/env python3

import boto3
import argparse
import time

ec2 = boto3.resource('ec2')

dstamp = time.strftime("_%m-%d-%Y-0")

parser = argparse.ArgumentParser(description='Create Image(AMI) from Instance tag:Name Value')
parser.add_argument('names', nargs='+', type=str.upper, help='instance name or list of names to create images from')
args = parser.parse_args()

# List Source Instances for Image/Tag Creation
for instance in ec2.instances.all():
  # Pull Name tags from source instances
  for name in instance.tags:
    if name["Key"] == 'Name':
      instancename = name["Value"]
      # Check for Name Tag Match with args
      for iname in args.names:
        if iname == instancename:
           # Create an image if we have a match
           image = instance.create_image(
           Description=f"Created from Source: {instance.id} Name: {instancename}",
           Name=instancename + dstamp,
           NoReboot=True)
           print('New: {} from instance.id: {} {}'.format(image.id, instance.id, instancename))
           # ----------------------------------------------
           # Can't copy tags from src instance - cause of auto-generated by Cloudformation Tags
           # error I got: "Tag keys starting with 'aws:' are reserved for internal use"
           # So we skip any tag [Key] named 'aws:'
           # ----------------------------------------------
           for tag in instance.tags:
             dst_tags = []
             if tag['Key'].startswith('aws:'):
               print("Skip tag that starts with 'aws:' " + tag['Key'])
             else:
               dst_tags.append(tag)
               print('     Tags:', dst_tags)
               image.create_tags(Tags=dst_tags)

Это работает отлично, но последняя функция, которую мне не хватает, - это применение тегов к базовым снимкам тома во вновь созданном изображении.Должен ли я полностью переключиться на client = boto3.client('ec2'), чтобы пометить мои снимки громкости?

Другими словами - как люди, использующие изображения для резервного копирования, отмечают свои снимки томов?

Я работаю с boto3 и python 3 все 3 недели вместе с моим обычнымобязанности, любая помощь будет оценена.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...