当我们管理自己AWS账号下的EC2资源时,一般都是登录到Console界面进行管理
笔者自己的AWS经常是用于做一些实验时,才会去创建EC2,部署一些环境等,为了不用频繁登录Console,于是写了一个GUI的管理工具
先看一下整体界面如下:
有创建EC2 , 查询EC2, 删除指定的EC2,删除全部的EC2 四个功能
笔者在设计时,也增加了一些如下小细节
1、点击【创建EC2】资源后,会在前面显示新建的EC2的实例ID,私有IP,以及创建时的 【CreateTime】创建日间的tag
这样以后可以通过CreateTime知道 EC2资源是什么时间创建的,另:当程序创建完成后,会调用一次【查询】按钮所绑定的函数
因为也就会在下方的列表框中,展示出所有的EC2资源 ,通过与【创建EC2】左侧的文本框对比,也就知道新建的EC2的更详细的信息
说明:因为EC2创建时,都是让自动分配的公网IP地址,因此在刚创建完,未启动的时候,是查询不到公网IP的,不过创建后启动了,在下方列表框就能看到
2、关于【删除选中EC2】和 【删除全部EC2】两个功能,必须增加确认弹窗,这样可以访止误操作,以删除一台EC2为例,效果如下
可以看删除EC2,先是会关机,过一会儿再查询就是terminated终止的状态了
关于【删除选中EC2】这个功能涉及成了,只能选中一个EC2实例条目,删除前弹出确认的弹窗,如果没有选择EC2条目,给也错误提醒,并退出函数,的核心代码如下:
def EC2_Delete(): Ec2client=Session.client('ec2',region_name=region_name,aws_access_key_id=aws_access_key_id,aws_secret_access_key=aws_secret_access_key) Selected_item=Left_List_01.curselection() try: Selected_item=Left_List_01.get(Selected_item) except: tkinter.messagebox.showerror("错误","请先选择一个要删除的实例条目") return 1 result=tkinter.messagebox.askyesnocancel("确认","你确定要删除选中的实例吗?",default=tkinter.messagebox.NO) if result: EC2ID=Selected_item[0] Terminate_instances_response = Ec2client.terminate_instances(InstanceIds=[EC2ID])
其他说明:像对于EC2的终止命令,也是有着幂等性原则的,执行一次和多次效果也是一样的,只要实例ID还在就不会抛出异常
尊重别人的劳动成果 转载请务必注明出处:https://www.cnblogs.com/5201351/p/17590612.html