金山云api调用的几个例子

今天另外一个运维要看一下金山云API返回的格式,于是就临时写了两个demo,也顺便记录下来,说不定以后开发脚本的时候可能用的着。

金山云跟阿里云的sdk不一样,阿里云有一个总的sdk,然后不同的服务还需要去分别下载对应具体的sdk;而金山的不是,他绝大多数的服务都是用那个总sdk。

查询数据库的脚本

需要先获取https://github.com/kscdb/krds_openapi_sdk.git,然后执行python setup.py install安装所用的金山库。

这个脚本是查询某个数据库的具体情况:
paradin

脚本如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
#!/usr/bin/env python
# -*- encoding:utf-8 -*-
from kscore.session import get_session
from krds_client import *

#密钥
ACCESS_KEY_ID = "这里填写ak"
SECRET_ACCESS_KEY = "这里填写sk"

#连接
s = get_session()
krds_client = KRDSClient(ACCESS_KEY_ID, SECRET_ACCESS_KEY, '地域名')
r = krds_client.DescribeDBInstances(DBInstanceIdentifier='5c664b16-fbfe-4373-8a00-67c9476e7386',DBInstanceType='HA') #DBInstanceIdentifier后面是实例ID
print r

执行脚本之后,可以看到返回的结果包括数据库里很多的资料,如图:
paradin

如果不加参数的话,就是返回账号内所有的数据库情况。

查询服务器的脚本

需要先获取https://github.com/KscSDK/ksc-sdk-python.git,然后执行python setup.py install安装所用的金山库。

这个脚本是查询下面这个服务器的情况:
paradin

脚本如下:

1
2
3
4
5
6
7
8
9
10
11
12
#!/usr/bin/env python
# -*- encoding:utf-8 -*-
from kscore.session import get_session

#密钥
ACCESS_KEY_ID = "这里填写ak"
SECRET_ACCESS_KEY = "这里填写sk"

#连接
s = get_session()
client = s.create_client("kec", "地域名", use_ssl=True,ks_access_key_id=ACCESS_KEY_ID, ks_secret_access_key=SECRET_ACCESS_KEY)
print client.describe_instances(Search=['js-online-hlsproxy-20']) #Search后面接实例名

执行脚本之后,可以看到返回的结果包括数据库里很多的资料,如图:
paradin

如果不加参数的话,就是返回账号内所有的服务器情况。

弹性IP相关的脚本

脚本如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#!/usr/bin/env python
#coding=utf-8
#这个脚本是用来修改金山云的eip带宽
import json,pprint
from kscore.session import get_session

# 密钥
ACCESS_KEY_ID = "这里是ak"
SECRET_ACCESS_KEY = "这里是sk"

s = get_session()
region='cn-shanghai-2'
eipClient = s.create_client("eip",region, use_ssl=False,ks_access_key_id=ACCESS_KEY_ID,ks_secret_access_key=SECRET_ACCESS_KEY)

#allEips=eipClient.get_lines() #这是获取LineID
#allEips=eipClient.allocate_address(LineId:"a2403858-2550-4612-850c-ea840fa343f9",BandWidth:5,ChargeType:"PostPaidByDay") #这是创建eip
#print allEips
#allEips=eipClient.describe_addresses(MaxResults=7) #这是查询eip,一次输出7次
for line in open("/具体路径/金山云eip名单.txt"):
line = line.strip('\n') #去掉回车
eipClient.modify_address(**{'AllocationId':line,'BandWidth':1}) #将文件里的所有的eip带宽改成1M
print ("带宽已经调整完毕!")

总体来说金山云的sdk文档还是比较挫。

参考资料

https://github.com/KscSDK/ksc-sdk-python
https://github.com/kscdb/krds_openapi_sdk

感谢您请我喝咖啡~O(∩_∩)O,如果要联系请直接发我邮箱chenx1242@163.com,我会回复你的
-------------本文结束感谢您的阅读-------------