API 调用之阿里云详解

使用方法

通过调用 API,将主机相关信息解析,然后通过 json 格式发送至自己的 cmdb 保存

  • 示例代码
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    om aliyunsdkcore.request import CommonRequest
    import json
    client = AcsClient('<AccessKeyId>', '<AccessKeySecret>', 'cn-beijing')

    request = CommonRequest()
    request.set_accept_format('json')
    request.set_domain('ecs.aliyuncs.com')
    request.set_method('POST')
    request.set_version('2014-05-26')
    request.set_action_name('DescribeInstances')
    request.add_query_param('RegionId', 'cn-beijing')
    response = client.do_action_with_exception(request)
    result = json.loads(response.decode('utf-8'))

    result_dic = {} #自定义字典
    request_id = result.get('RequestId')
    request_data = result.get('InstanceStatuses').get('InstanceStatus') #构造字典
    for item in request_data: #循环在字典中添加主机信息
    result_dic[item.get('InstanceId')] = {'InstanceId': item.get('InstanceId')}
    result_dic[item.get('InstanceId')]['mem'] = item.get('Memory')
    return result_dic

磁盘信息

阿里云 API 中磁盘信息通过单独的接口调用,在云主机中没有磁盘信息

  • 示例代码
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    rom aliyunsdkcore.client import AcsClient
    from aliyunsdkcore.request import CommonRequest
    client = AcsClient('<AccessKeyId>', '<AccessKeySecret>', 'cn-beijing')

    request = CommonRequest()
    request.set_accept_format('json')
    request.set_domain('ecs.aliyuncs.com')
    request.set_method('POST')
    request.set_version('2014-05-26')
    request.set_action_name('DescribeDisks')

    request.add_query_param('RegionId', 'cn-beijing')

    response = client.do_action_with_exception(request)
    # python2: print(response)
    print(str(response, encoding = 'utf-8'))

webssh

该功能类似于通过管理控制台登录云主机

使用方法

在链接 https://g.alicdn.com/aliyun/ecs-console-vnc/0.0.7/index.html? 末尾加上 vncUrl=xxxx、 instanceId=xxx 和 isWindows=true、 isWindows=false 和 password=XXXXXX,参数之间使用 & 连接。其中:

  • 参数 vncUrl:调用接口成功后会返回的 VncUrl 的值
  • 参数 instanceId:您的实例 ID
  • 参数 isWindows:该实例的操作系统是否是 Windows 系统。取值为 true 表示是 Windows 系统,取值为 false 表示不是 Windows 系统
  • (可选)参数 password:该实例的远程连接密码,由 6 位数字或大小写字母组成。使用该参数时,在连接管理终端处您不需要再输入密码

url示例

1
https://g.alicdn.com/aliyun/ecs-console-vnc/0.0.7/index.html?vncUrl=ws%3A%2F%xxx&instanceId=i-wz9hhwq5a6tmxxxxxxx&isWindows=true

示例代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
from aliyunsdkcore.client import AcsClient
from aliyunsdkcore.request import CommonRequest
client = AcsClient('<AccessKeyId>', '<AccessKeySecret>', 'cn-beijing')

request = CommonRequest()
request.set_accept_format('json')
request.set_domain('ecs.aliyuncs.com')
request.set_method('POST')
request.set_version('2014-05-26')
request.set_action_name('DescribeInstanceVncUrl')

request.add_query_param('RegionId', 'cn-beijing')

response = client.do_action_with_exception(request)
# python2: print(response)
print(str(response, encoding = 'utf-8'))

Recommended Posts