Ich habe einen Prozess durchgeführt, um AMI mit AWS Lambda zu erhalten. Ich habe andere gemacht, aber der Code ist ähnlich ...
Ruft die AMI der Instanz mit dem Tag env: dev ab. Der AMI-Name wird mit der Entwicklungszeit erstellt.
Normalerweise bin ich ein Infrastrukturgeschäft, daher macht es Spaß, solche neuen Entdeckungen zu machen.
from __future__ import print_function
import boto3
from boto3.session import Session
from datetime import datetime
ec2 = boto3.client('ec2')
dev_list = []
img_name = "dev-" + datetime.now().strftime("%Y%m%d%H")
# def
def get_list():
instance_list = ec2.describe_instances(
Filters=[{'Name': 'tag:env', 'Values': ['dev']}]
)
for Reservations in instance_list['Reservations']:
for dev_instances in Reservations['Instances']:
dev_list.append(dev_instances["InstanceId"])
return dev_list
def create_image(dev_list):
for instance_id in dev_list:
response = ec2.create_image(
InstanceId = instance_id,
Name = img_name,
NoReboot = True
)
def lambda_handler(event, context):
get_list()
create_image(dev_list)
return dev_list
https://github.com/handa3/study/blob/master/aws/lambda/create_ami.py