SDK 使用文档
========
A low-level interface to a growing number of KSC Web Services.
----------------
Install 安装
----------------
+ github 安装
+ 通过 `GitHub `__ 下载
+ 通过命令 python setup.py install 安装
----------------
Config 配置
----------------
+ 申请安全凭证:
在第一次使用云API之前,用户首先需要在金山云控制台申请安全凭证,安全凭证包括access_key_id和secret_access_key,access_key_id 是用于标识API调用者的身份,secret_access_key是用于加密签名字符串和服务器端验证签名字符串的密钥。secret_access_key 必须严格保管,避免泄露。
+ 获取安全凭证方法:
参见金山云文档: https://docs.ksyun.com/documents/40311
+ 通过文件配置及管理密钥,参考examples内示例:
+ 所在位置: '/etc/kscore.cfg' 或 './.kscore.cfg' 或 'C:\\kscore.cfg'
+ 注意: 使用相对路径时,需与运行目录保持一致。
::
[Credentials]
ks_access_key_id=your ak
ks_secret_access_key=your sk
+ 或在程序运行时配置:
::
from kscore.session import get_session
# 密钥
ACCESS_KEY_ID = "your ak"
SECRET_ACCESS_KEY = "your sk"
s = get_session()
client = s.create_client("iam", ks_access_key_id=ACCESS_KEY_ID, ks_secret_access_key=SECRET_ACCESS_KEY)
----------------
接口输出自定义 SDK版本 >=1.3.46
----------------
+ 通过自定义映射yaml文件,文件名称必须为customer.yaml
+ customer.yaml必须放置在 您的路径/service名称/官网服务版本号 的路径下
+ 以EIP为例 需要放在 您的路径/eip/2016-03-04/customer.yaml
+ customer.yaml示例
::
DescribeAddresses:
PublicIp: address
AllocationId: uuid
AddressesSet: ips
+ 使用示例
::
eipClient = s.create_client("eip", region, use_ssl=True,customer_path='your path')
----------------
金山云-私有云域名配置 SDK版本 >1.3.32
----------------
+ 通过文件配置及管理密钥,参考examples内示例:
+ 所在位置: '/etc/kscore.cfg' 或 './.kscore.cfg' 或 'C:\\kscore.cfg'
+ 注意: 使用相对路径时,需与运行目录保持一致。
+ 注意 域名不要带引号 示例 ks_domain = api.ksyun.com
::
[Domain]
ks_domain = your domain
+ 或在程序运行时配置:
::
from kscore.session import get_session
# 密钥
ks_domain = "your domain"
s = get_session()
s.set_domain(ks_domain)
----------------
日志级别配置方法
----------------
from kscore.utils import set_logger_level
import logging
set_logger_level(logging.WARNING)
----------------
Service 服务
----------------
+ 已支持大区 region_name
+---------------------+--------------+
| region_name | 大区 |
+=====================+==============+
| cn-beijing-6 | 北京6区 |
+---------------------+--------------+
| cn-shanghai-2 | 上海2区 |
+---------------------+--------------+
| cn-guangzhou-1 | 广州1区 |
+---------------------+--------------+
| cn-hongkong-2 | 香港2区 |
+---------------------+--------------+
| cn-taipei-1 | 台北1区 |
+---------------------+--------------+
| ap-singapore-1 | 新加坡1区 |
+---------------------+--------------+
| eu-east-1 | 俄罗斯1区 |
+---------------------+--------------+
| cn-beijing-fin | 北京金融 |
+---------------------+--------------+
| cn-shanghai-fin | 上海金融 |
+---------------------+--------------+
+ 已支持服务列表 service_name,具体方法与API的Action对应,如kec服务RunInstances对应为run_instances方法。 `详情参考API手册 `__
+-------------------+----------------+
| service | 服务名 |
+===================+================+
| iam | 身份与访问控制 |
+-------------------+----------------+
| eip | 弹性IP |
+-------------------+----------------+
| bws | 共享带宽 |
+-------------------+----------------+
| slb | 负载均衡 |
+-------------------+----------------+
| kec | 云服务器 |
+-------------------+----------------+
| epc | 云物理机 |
+-------------------+----------------+
| kce | 容服 |
+-------------------+----------------+
| tag | 标签服务 |
+-------------------+----------------+
| slb | 负载均衡 |
+-------------------+----------------+
| kcs | REDIS |
+-------------------+----------------+
| vpc | 虚拟私有网络 |
+-------------------+----------------+
| cdn | 内容分发网络 |
+-------------------+----------------+
| monitor | 云监控 |
+-------------------+----------------+
| offline | 视频转码 |
+-------------------+----------------+
----------------
Method 方法
----------------
+ 常用方法
+ get_session
+---------------------------+---------------------------------------+
| 参数 | 说明 |
+===========================+=======================================+
| env_vars | 环境变量 |
+---------------------------+---------------------------------------+
+ create_client
+---------------------------+---------------------------------------+
| 参数 | 说明 |
+===========================+=======================================+
| service_name | 服务,必须参数,例:iam |
+---------------------------+---------------------------------------+
| region_name=None | 大区,必须参数,全局服务可以为None |
+---------------------------+---------------------------------------+
| api_version=None | API 版本,默认使用最近版本 |
+---------------------------+---------------------------------------+
| use_ssl=True | 是否使用HTTPS,优先使用 |
+---------------------------+---------------------------------------+
| verify=None | 是否验证SSL证书 |
+---------------------------+---------------------------------------+
| endpoint_url=None | |
+---------------------------+---------------------------------------+
| ks_access_key_id=None | |
+---------------------------+---------------------------------------+
| ks_secret_access_key=None | |
+---------------------------+---------------------------------------+
| ks_session_token=None | |
+---------------------------+---------------------------------------+
----------------
Examples 示例
----------------
+ IAM
::
from kscore.session import get_session
if __name__ == "__main__":
s = get_session()
client = s.create_client("iam", use_ssl=False)
users = client.list_users()
+ KEC
::
from kscore.session import get_session
if __name__ == "__main__":
s = get_session()
client = s.create_client("kec", "cn-beijing-6", use_ssl=False)
client.[your method]()
+ MONITOR
::
from kscore.session import get_session
if __name__ == "__main__":
s = get_session()
client = s.create_client("monitor", "cn-beijing-5", use_ssl=True)
m=client.get_metric_statistics(InstanceID="6f582c78-5d49-438e-bf2d-db4345daf503",Namespace="eip",MetricName="qos.bps_in",StartTime="2016-08-16T17:09:00Z",EndTime="2016-08-16T23:56:00Z",Period="600",Aggregate="Average")
print json.dumps(m,sort_keys=True,indent=4)
+ OFFLINE
::
from kscore.session import get_session
import json
if __name__=="__main__":
#初始化
s = get_session()
client = s.create_client("offline", "cn-beijing-6", use_ssl=False)
#创建模板接口调用示例 : preset
presetname = 'testpreset'
description = 'just a demo'
presetType = 'avop'
param = {
"preset": presetname,
"description": description,
"presettype": presetType,
"param": {
"f": "mp4",
"AUDIO": {
"acodec": "aac",
"ar":"44100",
"ab":"64k"
},
"VIDEO": {
"vr": 25,
"vb": "500k",
"vcodec": "h264",
"width": 640,
"height": 360
}
}
}
res = client.preset(**param)
print json.dumps(res)
#获取模板信息接口调用示例 : get_preset_detail
res = client.get_preset_detail(preset = presetname)
print json.dumps(res)
+ CDN
::
from kscore.session import get_session
if __name__ == "__main__":
# CDN API调用 详细示例位于 ./examples/cdn.py
s = get_session()
client = s.create_client("cdn", use_ssl=False)
res = client.get_cdn_domains(PageSize=20,PageNumber=0,DomainStatus='online',CdnType='download')
print res
+ 更多
--------------------
BUG FIXED 问题修正
--------------------
+ CERTIFICATE_VERIFY_FAILED
::
requests.exceptions.SSLError: [Errno 1] _ssl.c:504: error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed
+ 参考 `InsecurePlatformWarning `__ 解决方法如下
::
pip install requests[security]
+ 如 `build/temp.linux-x86_64-2.7/_openssl.c:433:30: fatal error: openssl/opensslv.h: No such file or directory` 解决方法如下
::
yum install openssl-devel
+ 如 `build/temp.linux-x86_64-2.7/_openssl.c:12:24: fatal error: pyconfig.h: No such file or directory`解决方法如下
::
yum install python-devel