博客园  :: 首页  :: 管理

当我们管理自己AWS账号下的EC2资源时,一般都是登录到Console界面进行管理

笔者自己的AWS经常是用于做一些实验时,才会去创建EC2,部署一些环境等,为了不用登录Console操作

于是使用python, tkinter模块写了一个GUI的管理工具,先看一下整体界面如下:

这个小工具,有创建EC2 , 查询EC2, 删除指定的EC2,删除全部的EC2 四个功能

笔者在设计时,也增加了一些如下小细节

1、点击【创建EC2】资源后,会在前面显示新建的EC2的实例ID,私有IP,以及创建时的 【CreateTime】这个tag,用于记录创建时间

     这样以后可以通过CreateTime这个Tagy就知道 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