AWS设置定时函数暂停RDS数据库实例

AWS设置定时函数暂停RDS数据库实例

场景描述

RDS数据库实例 stop 一次只能暂停一周,一周后如果数据库没有删除那么就会自动重新运行,这篇文章的目的是配置一个自动触发的函数一周运行一次暂停账户里正在运行的RDS实例

配置Lambda函数实现暂停RDS实例的功能

import boto3

def list_rds_instance():
    db_list = []
    rds = boto3.client('rds')
    response = rds.describe_db_instances()
    
    for rds in response['DBInstances']:
        # print("============i", rds)
        if rds['DBInstanceStatus'] == 'available':  # stopped -> instance stopped
            db_list.append(rds['DBInstanceIdentifier'])
    
    return db_list


def stop_rds_instance(instance):
    rds = boto3.client('rds')
    # stop instance
    rds.stop_db_instance(DBInstanceIdentifier=instance)
        
    

def lambda_handler(event, context):
    # list all rds instances
    stop_rds_list = list_rds_instance()
    # print("=====================rds_list", stop_rds_list)
    
    if len(stop_rds_list) == 0:
        print("=======No running rds instances")
        return 
    
    try:
        for rds in stop_rds_list:
            stop_rds_instance(rds)
    except Exception as e:
        print(f"An error occurred: {e}")   
 

在上述函数中分别定义了list_rds_instancestop_rds_instance 两个函数,list_rds_instance 会列出此账户下全部的运行的RDS数据实例,stop_rds_instance 函数的功能是使这些正在运行的RDS数据库实例暂停。

给Lambda函数配置定时触发

在EventBridge中创建一个7天的规则

在这里插入图片描述

在Lambda函数中配置触发器

在这里插入图片描述
通过以上的流程就能配置一个定时触发的Lambda函数,以实现一周暂停一次RDS数据库实例的功能。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值