以前作成した特定のインスタンスをBoto3でstop処理をパワーアップさせてみました。
前提として
EC2にenvタグを付与しておき値はdevとして設定したインスタンスを仕込んでおきます。
Filtersの処理が上手く出来なかったですが、なんとか出来ました。
記念にブログアップ。次はLambdaと連携してみる。
# -*- coding: utf-8 -*-
# import
import boto3
from boto3.session import Session
ec2 = boto3.client('ec2')
dev_list = []
# 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 ec2_stop(dev_list):
for instance_id in dev_list:
response = ec2.stop_instances(
InstanceIds=[
instance_id
]
)
# Main
if __name__ == "__main__":
get_list()
ec2_stop(dev_list)