Lambda,AWS和Python的自动化管理操作(1)

最近开始从头学习Lambda 在AWS里面的自动化运用。我的操作主要是基于Python 3.7的版本,AWS的Python模块叫做Boto。具体的语法和概念都不赘述了,直接来看具体的例子。

首先来看看第一个简单的操作,如何创建一个新的EC2实例。

第一步,创建一个新的lambda函数,选择 author from scratch,这里他默认会自动创建一个IAM的role,并赋予访问cloudwatch log的权限

默认的权限显示如下

这里我们需要授予创建EC2的权限 ,因此需要修改对应的JSON。我们可以在IAM的role里面找到这个默认创建的Role,在默认的权限上面添加对 ec2:runinstances 访问就可以了。当然我们也可以一开始就手动创建一个新的role。

下面是更新之后的权限图

接下来是Lambda函数。Lambda函数都是靠事件来触发的,因此传入参数里面有event和context。

函数里面首先是导入模块
接下来传入几个环境变量,这几个环境变量是直接在函数下面的表格里面自定义的
然后在lambda_handler这个入口函数里面,直接创建一个新的EC2实例,传入参数。注意这个函数有2个形式参数event和context,这个是函数自带的,这里我们用不上,但是仍然需要写上

这几个环境变量分别代表 AMI的代码,实例类型,Key pair的名字和 subnet的子网代码

点击test,会提醒配置test的事件,这里我们不需要传入任何参数,因此选择最简单的hello world模板,传入一个空的参数就行了

保存之后再次点击test, 会显示成功执行

查看一下EC2实例 ,的确一个新的实例已经创建了!

原文地址:https://blog.51cto.com/beanxyz/2438381

时间: 2024-08-29 18:12:23

Lambda,AWS和Python的自动化管理操作(1)的相关文章

Lambda,AWS和Python的自动化管理操作 - 自动开机和关机

上一篇豆子已经配置在PyCharm里面添加了boto3和pyboto3,因此写脚本的时候可以直接在自己的PyCharm里面编写. 下面是一个例子遍历所有的region查找EC2,如果状态是开机,那就关掉:或者倒过来也可以写成 如果是关机状态,就开机. import boto3 def lambda_handler(event, context): # Get list of regions ec2_client = boto3.client('ec2') regions = [region['R

Lambda,AWS和Python的自动化管理操作 - 自动创建快照,删除快照

这一节看看如何通过boto3来管理EC2的快照.在实际生产环境中,豆子使用的是AWS提供的解决方案 EBS Snapshot Scheduler, 直接导入Cloudformation的stack,会自动配置Lambda函数和DynamoDB数据库,然后我们可以通过标签来进行设置.从学习的角度,我们直接来弄一个超简易的版本.我们可以直接写两个Lambda函数,一个进行创建,一个进行删除. 首先,设置一个tag标签 接下来创建Lambda函数 IAM Role的配置如下 { "Version&qu

8.python之上下文管理协议

使用上下文管理协议,有什么好处? 使用with语句的目的就是把代码块放入with中执行,with结束后,自动完成清理工作,无须手动干预. 在需要管理一些资源比如文件,网络连接和锁的编程环境中,可以在__exit__中定制自动释放资源的机制,你无须再去关系这个问题,这将大有用处. 之前所提到的with代码块,就是python的上下文管理操作,比如说通过python打开一个文件,就可以通过with代码块结合open去实现,通过这种方式打开的文件,执行了相应的操作后,无需我们手动去close文件,文件

python自动化管理mysql主从同步

mysql 多实例 1.my.cnf 通过定义mysqldconfig类   mysqld_vars = {}  从里面获得很多配置文件相关参数写入字典 mysql.py 2.init DB 初始化数据库 3.修改权限 4.rc脚本启动 5.check 检查一下配置文件,配置文件与mysql变量同步 6.值其实一样,不让显示 7.Popen 调用 mysql -e 命令 SQL IO Seconds_Behind_Master:0    看这个阀值.大于两秒 8.mysql主从 主配置文件: b

python+selenium自动化环境搭建之后,能打开firefox,却不能执行自动化操作

python+selenium自动化环境搭建之后,选择执行,能够打开firefox,但是却不能继续执行后续操作.原因是selenium的版本与firefox的版本不兼容. 解决办法: 1.将firefox降到与selenium相对应的版本.例如我使用selenium版本是3.3.3,那我对应的firefox版本是52.0.2,如果firefox继续升级,也会出现不兼容的情况.建议可以在firefox的工具--选项--高级中设置为不检查更新,以免软件自动更新出现问题. 2.安装该浏览器版本对应的g

Python在自动化运维中的应用

欢迎加入Reboot运维开发千人群(365534424) 技术交流分享天天有 我更喜欢用"系统平台管理"来形容"运维"这项工作.注意系统.平台这两个词语.运维听起来是偏执行的一项工作.python在系统管理上的优势在与强大的开发能力和完整的工具链.python的工程开发能力强大,远强于各种shell和perl.易读易写,兼具面向对象和函数式风格,还有不错元编程能力.通过系统化的将各种管理工具结合,对上述的各类工具进行二次开发,形成统一的服务器管理系统. 和pytho

【DevOps】做个愉快的DevOps之XenServer自动化管理(1)

这里主要是用python来做为开发工具,当然,如果你喜欢,go.java.C都可以.语言只是一种工具,不必纠结那种,用得顺手,方便,而且适合团队作战的最好. 我选python,主要是python是高级语言,拥有大量的开源模板库,初期学习成本低,适合在团队内迅速推广.简单的说就是不用我一个人去搞,我闪了后,别人也能轻松接手维护. XenServer的开放接口工具叫Xapi,网站是   :  http://xapi-project.github.io/xen-api/   .当然,使用Xapi前,我

ansible自动化管理windows系统实战

一.简述 1.说明日常系统自动化运维过程中难免会有windows系列服务器,就开源软件来说目前大多的对windows批量管理兼容性不太好;不像Linux系统便捷,但现实中确实有些业务需要跑在windows上;搜索查找折腾一番后,发现python开发的ansible(已经被redhat收购)有比较好的解决方案,通过一番折腾,整理出来,以备忘交流; 2.实验环境服务器端:CentOS7.4_x64 自带python 2.7.5 ip:172.16.3.167源码安装ansible 被管理window

强大的 Python 任务自动化工具!invoke 十分钟入门指南

接着前面的<tox 教程>,以及刚翻译好的<nox文档>,我们继续聊聊 Python 任务自动化的话题. nox 的作者在去年的 Pycon US 上,做了一场题为<Break the Cycle: Three excellent Python tools to automate repetitive tasks>的分享(B站观看地址:https://b23.tv/av86640235),她介绍了三个任务自动化工具:tox.nox 和 invoke,本文的话题正好就是最