Python3获取ECS相关信息

简介: 使用python获取帐号下ecs 信息

aliyun-openapi-python-sdk  ecs api概览传送门 Openapi


pip3 install  aliyun-python-sdk-core
pip3 install aliyun-python-sdk-ecs



# -*- coding: utf-8 -*-

'''
Copyright (c) 2018, mersap
All rights reserved.

摘    要: base aliyun ecs api.py
创 建 者: mersap
创建日期: 2019-01-30
'''
import json
from aliyunsdkcore import client
from aliyunsdkcore.request import CommonRequest
from aliyunsdkecs.request.v20140526 import DescribeInstancesRequest

KEYS = client.AcsClient(
    "aaaaaaaa",
    "bbbbbbbbbbbbb",
    "cn-beijing")
class AliyunEcsHandler(object):
    """docstring for Ali"""
    def DescribeInstances(self, client, page_num=1, innerip='', instanceids=''):
        """
        :DescribeInstances(client=KEYS,innerip='"10.10.10.10","10.10.10.11"')
        """

        request = DescribeInstancesRequest.DescribeInstancesRequest()
        request.set_PageNumber(page_num)
        request.set_PageSize(100)
        if not len(innerip) == 0:
            request.set_InnerIpAddresses('[{}]'.format(innerip))
        if not len(instanceids) == 0:
            request.set_InstanceIds('[{}]'.format(instanceids))
        response = client.do_action_with_exception(request)
        return json.loads(response)



    def Instances_Details(self, client):
        """获取帐号下所有主机信息:  所有
        :params client:阿里云accesskey
        """
        ecs_details = self.DescribeInstances(client)
        totalcount = ecs_details['TotalCount']
        for num in range(2, int(totalcount/100)+2):
            ecs_detail = self.DescribeInstances(client=client, page_num=num)
            for ecs in  ecs_detail["Instances"]["Instance"]:          
                ecs_details["Instances"]["Instance"].append(ecs)
        return  ecs_details


def test_ecs():
    """ecs信息汇总
    """
    ecs = AliyunEcsHandler()
    ecs_details = ecs.Instances_Details(KEYS)
    cpus , memorys = 0, 0
    for ecs in ecs_details['Instances']['Instance']:
        cpus += ecs['Cpu']
        memorys += ecs['Memory']
    print('ECS总数: {} 台,共{} Cpus、 {} GB '.format(
        ecs_details['TotalCount'],
        cpus , 
        memorys/1024)
    )
    

if __name__ == '__main__':
    test_ecs()


相关实践学习
2分钟自动化部署人生模拟器
本场景将带你借助云效流水线Flow实现人生模拟器小游戏的自动化部署
7天玩转云服务器
云服务器ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,可降低 IT 成本,提升运维效率。本课程手把手带你了解ECS、掌握基本操作、动手实操快照管理、镜像管理等。了解产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
1天前
|
JavaScript API C#
【Azure Developer】Python代码调用Graph API将外部用户添加到组,结果无效,也无错误信息
根据Graph API文档,在单个请求中将多个成员添加到组时,Python代码示例中的`members@odata.bind`被错误写为`members@odata_bind`,导致用户未成功添加。
20 10
|
18天前
|
弹性计算 安全 开发工具
灵码评测-阿里云提供的ECS python3 sdk做安全组管理
批量变更阿里云ECS安全组策略(批量变更)
|
2月前
|
缓存 监控 Linux
Python 实时获取Linux服务器信息
Python 实时获取Linux服务器信息
|
3月前
|
Python
Socket学习笔记(二):python通过socket实现客户端到服务器端的图片传输
使用Python的socket库实现客户端到服务器端的图片传输,包括客户端和服务器端的代码实现,以及传输结果的展示。
180 3
Socket学习笔记(二):python通过socket实现客户端到服务器端的图片传输
|
3月前
|
JSON 数据格式 Python
Socket学习笔记(一):python通过socket实现客户端到服务器端的文件传输
本文介绍了如何使用Python的socket模块实现客户端到服务器端的文件传输,包括客户端发送文件信息和内容,服务器端接收并保存文件的完整过程。
194 1
Socket学习笔记(一):python通过socket实现客户端到服务器端的文件传输
|
2月前
|
存储 数据采集 数据库
用 Python 爬取淘宝商品价格信息时需要注意什么?
使用 Python 爬取淘宝商品价格信息时,需注意法律和道德规范,遵守法律法规和平台规定,避免非法用途。技术上,可选择 Selenium 和 Requests 库,处理反爬措施如 IP 限制、验证码识别和请求频率控制。解析页面数据时,确定数据位置并清洗格式。数据存储可选择 CSV、Excel、JSON 或数据库,定期更新并去重。还需进行错误处理和日志记录,确保爬虫稳定运行。
|
2月前
|
数据采集 Web App开发 iOS开发
如何利用 Python 的爬虫技术获取淘宝天猫商品的价格信息?
本文介绍了使用 Python 爬虫技术获取淘宝天猫商品价格信息的两种方法。方法一使用 Selenium 模拟浏览器操作,通过定位页面元素获取价格;方法二使用 Requests 和正则表达式直接请求页面内容并提取价格。每种方法都有详细步骤和代码示例,但需注意反爬措施和法律法规。
|
2月前
|
存储 关系型数据库 MySQL
查询服务器CPU、内存、磁盘、网络IO、队列、数据库占用空间等等信息
查询服务器CPU、内存、磁盘、网络IO、队列、数据库占用空间等等信息
870 2
|
3月前
|
IDE 网络安全 开发工具
IDE之pycharm:专业版本连接远程服务器代码,并配置远程python环境解释器(亲测OK)。
本文介绍了如何在PyCharm专业版中连接远程服务器并配置远程Python环境解释器,以便在服务器上运行代码。
514 0
IDE之pycharm:专业版本连接远程服务器代码,并配置远程python环境解释器(亲测OK)。
|
3月前
|
SQL 分布式计算 Hadoop
Hadoop-37 HBase集群 JavaAPI 操作3台云服务器 POM 实现增删改查调用操作 列族信息 扫描全表
Hadoop-37 HBase集群 JavaAPI 操作3台云服务器 POM 实现增删改查调用操作 列族信息 扫描全表
40 3