使用python基于boto3和tkintrer模块-编写一个AWS-EC2的管理器界面

发布时间 2023-07-29 21:50:49作者: 520_1351

当我们管理自己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