diff --git a/lambda/start-rds/start-rds.py b/lambda/start-rds/start-rds.py new file mode 100644 index 00000000..ee4f4b9b --- /dev/null +++ b/lambda/start-rds/start-rds.py @@ -0,0 +1,29 @@ +import os + +import boto3 + +client = boto3.client('rds') + +#環境変数 +AUTO_START_TAG_TAGKEY = os.environ['AUTO_START_TAG_TAGKEY'] +AUTO_START_ENABLE = os.environ['AUTO_START_ENABLE'] + +def lambda_handler(event, context): + #クラスターを停止 + clusters = client.describe_db_clusters() + for cluster in clusters['DBClusters']: + if cluster['Status'] == "stopped": + tags = client.list_tags_for_resource(ResourceName=cluster['DBClusterArn']) + for tag in tags['TagList']: + if tag['Key'] == AUTO_START_TAG_TAGKEY and tag['Value'] == AUTO_START_ENABLE: + client.start_db_cluster(DBClusterIdentifier=cluster['DBClusterIdentifier']) + + #インスタンスを停止 + instances = client.describe_db_instances() + for instance in instances['DBInstances']: + if instance['DBInstanceStatus'] == "stopped": + tags = client.list_tags_for_resource(ResourceName=instance['DBInstanceArn']) + for tag in tags['TagList']: + if tag['Key'] == AUTO_START_TAG_TAGKEY and tag['Value'] == AUTO_START_ENABLE: + client.start_db_instance(DBInstanceIdentifier=instance['DBInstanceIdentifier']) +