Lambda,AWS和Python的自动化管理操作 - 自动开机和关机
发表于:2025-02-01 作者:千家信息网编辑
千家信息网最后更新 2025年02月01日,上一篇豆子已经配置在PyCharm里面添加了boto3和pyboto3,因此写脚本的时候可以直接在自己的PyCharm里面编写。下面是一个例子遍历所有的region查找EC2,如果状态是开机,那就关掉
千家信息网最后更新 2025年02月01日Lambda,AWS和Python的自动化管理操作 - 自动开机和关机
上一篇豆子已经配置在PyCharm里面添加了boto3和pyboto3,因此写脚本的时候可以直接在自己的PyCharm里面编写。
下面是一个例子遍历所有的region查找EC2,如果状态是开机,那就关掉;或者倒过来也可以写成 如果是关机状态,就开机。
import boto3def lambda_handler(event, context): # Get list of regions ec2_client = boto3.client('ec2') regions = [region['RegionName'] for region in ec2_client.describe_regions()['Regions']] # Iterate over each region for region in regions: ec2 = boto3.resource('ec2', region_name=region) print("Region:", region) # Get only running instances instances = ec2.instances.filter( Filters=[{'Name': 'instance-state-name', 'Values': ['running']}]) #Stop the instances for instance in instances: instance.stop() print('Stopped instance: ', instance.id) # instances = ec2.instances.filter( # Filters=[{'Name': 'instance-state-name', # 'Values': ['stopped']}]) # # for instance in instances: # instance.start() # print('Start instance: ', instance.id)if __name__ == '__main__': lambda_handler(0,0)
执行一下是工作的
C:\Users\yuan\PycharmProjects\aws\venv\Scripts\python.exe C:/Users/yuan/PycharmProjects/aws/StopInstance.pyRegion: eu-north-1Region: ap-south-1Region: eu-west-3Region: eu-west-2Region: eu-west-1Region: ap-northeast-2Region: ap-northeast-1Region: sa-east-1Region: ca-central-1Region: ap-southeast-1Region: ap-southeast-2Stopped instance: i-0bb70cc9666ce2af3Region: eu-central-1Region: us-east-1Stopped instance: i-00e9dc7c254dbe497Region: us-east-2Region: us-west-1Region: us-west-2
然后我们在aws的Lambda里创建一个新的函数, 这里我已经自定义了一个role了,确保这个role可以对ec2有开机和关机的权限
IAM的权限如下所示:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "logs:CreateLogGroup", "logs:CreateLogStream", "logs:PutLogEvents" ], "Resource": "arn:aws:logs:*:*:*" }, { "Effect": "Allow", "Action": [ "ec2:DescribeInstances", "ec2:DescribeRegions", "ec2:StartInstances", "ec2:StopInstances" ], "Resource": "*" } ]}
拷贝函数上来
接下来 在cloudwatch里面添加一个新的rule
创建向导,这里选择schedule,这里使用 cron的表达式,注意他是GMT的时间,因此需要自己和本地时间转换一下
写好之后他会有个友好的提示界面
完成创建
回到Lambda的界面, 可以看见他的触发器多了一个CloudWatch Events
等待执行之后,可以查看日志
也可以确认EC2 服务 的确关机了
函数
时间
权限
状态
界面
接下来
例子
向导
拷贝
日志
时候
脚本
表达式
触发器
豆子
上一
工作
提示
服务
选择
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
吃鸡战斗服务器为什么进不去
win10秘钥管理服务器
半导体和互联网科技板块走强
萨摩耶互联网金融科技
软件开发岗应聘理由
曲靖服务器云存储联系电话
数据库编程中连接池作用
主机无法连接到ea服务器
滨州陶瓷软件开发公司
美国十次啦服务器
机关网络安全培训内容
斗破苍穹服务器怎么连接
软件开发价格明细
涡阳租房网络安全
对于软件开发者来说
学校网络安全责任制
数据库实训的技术总结
河南高校软件开发专业
u8财务软件如何导出后台数据库
程序员植入数据库
我的世界服务器自己建
想学习组态软件开发
金蝶服务器维修多少钱
网络安全项目重点难点
基岩版优秀的服务器
内蒙古数据库排名
基础软件开发行业前景怎么样
笔记本总是网络安全密钥错误
杭州星动播网络技术有限公司
红谷杯网络安全意识赛