python(boto3) 脚本实现AWS实例的自起停

python(boto3) 脚本实现AWS实例的自起停

为AWS宁夏区开张送上迟到地祝福,上半年项目开发中用到了AWS云服务器,按时计费,为节省经费计划在上班期间开启,下班之后关闭。通过查看boto3文档,最终实现了这一小脚本。半年前的脚本,不知道在现在会不会过时,权当做个记录,如果能帮到网友自然更好

前置工作

  • 目的
    实现定时远程控制AWS中EC2和RDS实例的自启停
  • 运行必要环境
    python 3.6
    boto 3
    (通过aws命令行也可以进行远程控制,为了适应性,还是决定用python开发脚本,安装方法请通过网络检索。)
  • 参考文档
    https://pypi.org/project/boto3/
  • 访问信息
    以管理员的身份登录AWS,生成远程访问的必要信息,access_id,secret_access_key,region

实现

  • 思路
    EC2, 在boto3的文档中现成的EC2示范代码,照葫芦画瓢即可
    RDS,没有直接示范代码,参考session的示范代码,也捣鼓成功了
  • 文件结构
    根据boto3的推荐,分成python程序文件和配置文件
    配置文件如下,不再重复贴
[config]
aws_access_key_id = ABCDEFG
aws_secret_access_key = 123456789/*-+
region = cn-northwest-1
  • python代码
    EC2 实例控制代码,可以自动获取所有已存在的实例
#!/usr/bin/env python
# coding = utf-8

import sys
import boto3
from boto3.session import Session
import configparser

DEBUG = False

def get_config_info(configFile):
    cf = configparser.ConfigParser()
    cf.read(configFile)

    return  cf['config']['aws_access_key_id'], \
            cf['config']['aws_secret_access_key'], \
            cf['config']['region']


def get_instances_info(resource, id_list, state):
    
    instances = resource.instances.filter(
        Filters=[{
   'Name': 'instance-state-name', 'Values': [state]}])

    if an
  • 5
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值