使用方法
通过调用 API,将主机相关信息解析,然后通过 json 格式发送至自己的 cmdb 保存
- 示例代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21om 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
16rom 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 | from aliyunsdkcore.client import AcsClient |