cmdb 中客户端相关的操作,在公有云中通过调用其提供的 API 就可以获取所有信息。
以阿里云 API 使用为例
获取密钥
登录阿里云,右上角头像 –> accesskeys,进入用户信息管理页面
安全信息管理,显示用户AccessKey,若没有可以创建
记录 AccessKey ID 和 Access Key Secret 信息,用于访问 API 的密钥
相关文档
使用两个地址,分别是 help.aliyun.com
和 api.aliyun.com
help.aliyun.com
通过帮助文档,找到 API 相关章节,选择所属主机分类,可以查看到所有可以调用的 API,根据自己需要选择即可。
api.cliyun.com
通过 API Exploer,选择云服务器,然后输入对应接口名称,填写标红的必填项,可视化生成对应 SDK 的示例代码,很方便
python SDK 安装
SDK 核心库安装
python2
1
pip install aliyun-python-sdk-core
python3
1
pip install aliyun-python-sdk-core-v3
云产品 SDK 安装
1 | pip install aliyun-python-sdk-ecs |
示例代码
通过 DescribeInstanceStatus 查询当前用户所有实例状态信息1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16from 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('DescribeInstanceStatus')
request.add_query_param('RegionId', 'cn-beijing')
response = client.do_action(request)
# python2: print(response)
print(str(response, encoding = 'utf-8'))
输出结果1
{"PageNumber":1,"InstanceStatuses":{"InstanceStatus":[]},"TotalCount":0,"PageSize":10,"RequestId":"27892F62-31C3-4915-AA8B-2E65EE3A3A6A"}
参数说明
- PageNumer 页码
- InstanceStatuses 所有实例
- InstanceStatus 单个实例
- TotalCount 总数
- PageSize 每一页显示几条
- Requestid 结果id,通过结果id可以查询执行状态