python Lambda函数在预定时间后终止实例

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python Lambda函数在预定时间后终止实例相关的知识,希望对你有一定的参考价值。

# encoding:utf-8

import boto3
import json
import os
from datetime import datetime, timedelta, timezone

def lambda_handler(event, context):
    # 現在時刻
    UTC = timezone(timedelta(hours=+0), 'UTC')
    now = datetime.now(UTC)

    # 期限
    limit_hour = int(os.environ["limit_hour"])

    # 対象インスタンスの取得
    ec2 = boto3.resource("ec2")
    result = ec2.instances.filter(
        Filters=[{
            "Name": "tag:limit_instance",
            "Values": ["true"]
        }]
    )

    # 起動中のインスタンスがあればチェック
    for i in [i for i in result if i.state["Name"] == "running"]:
        print("Instance ID [{0}] Launch Time [{1}]".format(i.instance_id, i.launch_time)) 

        # 予定時間を過ぎている場合は削除
        if (i.launch_time + timedelta(hours=limit_hour)) < now:
            print("Instance ID [{0}] Limit".format(i.instance_id))
            print(ec2.instances.filter(InstanceIds=[i.instance_id]).terminate())
        else:
            print("Instance ID [{0}] Not Limit".format(i.instance_id))

    return "success"

以上是关于python Lambda函数在预定时间后终止实例的主要内容,如果未能解决你的问题,请参考以下文章

python 一个lambda函数,用于拍摄区域中所有EC2实例的快照,并在设定的天数后清除快照。这个

使用 lambda 函数删除关联的 cloudformation 堆栈时 EMR 集群未终止

使用 terraform 设置由预定事件源触发的 lambda 函数

使用 terraform 设置由预定事件源触发的 lambda 函数

Python入门之经典函数实例——第2关:Lambda函数 - 匿名函数的使用

Python入门之经典函数实例——第2关:Lambda函数 - 匿名函数的使用