快速入门
使用 shanhe-sdk 前请先在 管理控制台 申请 access key,申请后便可以自由使用了。
说明 |
---|
如果您期望在IAM身份的信任设备上使用 shanhe-sdk ,也可以不用申请 access key ,而是到 IAM 控制面板创建基于该信任设备的IAM即可。 |
下面举几个例子来帮助大家快速上手,全部功能请见后面的函数列表 。
建立连接
-
发起请求前要先建立连接:
>>> import shanhe.iaas >>> conn = shanhe.iaas.connect_to_zone( 'jn1', # 你的资源所在的节点ID,可在控制台切换节点的地方查看,如 'jn1', 'jn2', 等 'access key id', 'secret access key' )
-
若使用 IAM 身份建立连接,则无需提供
access key id
和secret access key
。>>> import shanhe.iaas >>> conn = shanhe.iaas.connect_to_zone( 'jn1', # 你的资源所在的节点ID,可在控制台切换节点的地方查看,如 'jn1', 'jn2', 等 None, None )
说明 上面代码中得到的 conn 是 APIConnection 的实例,在接下来的教程中会继续用到它。
APIConnection 中各操作函数的返回值是根据 API 返回的 JSON 数据转换而成的 dict 。 具体返回内容可参见 API 文档 中对应指令。
创建云服务器
创建一台云服务器至少要提供镜像ID,Instance Types 或 cpu/memory:
>>> ret = conn.run_instances(
image_id='img-xxxxxx',
cpu=1,
memory=1024,
vxnets=['vxnet-0'],
login_mode='passwd',
login_passwd='Passw0rd@()'
)
说明 |
---|
如果创建时没有指定防火墙 security_group ,则自动使用缺省防火墙。 |
关闭云服务器
-
当你的云服务器暂时不需要运行时,可将其关闭以减少费用(可同时关闭多台):
>>> ret = conn.stop_instances( instances=['instance-id-1','instance-id-2', ...] )
-
有时默认关机会失败,特别是 Windows 系统,部分运行中的应用会阻止系统关机。 这时需要强制关机:
>>> ret = conn.stop_instances( instances=['instance-id-1','instance-id-2', ...], force=True )
销毁云服务器
当你的云服务器确已不再需要时,可将其销毁,云服务器系统磁盘内的数据也会随之一起销毁:
>>> ret = conn.terminate_instances(
instances=['instance-id-1','instance-id-2', ...]
)
说明 |
---|
云服务器所加载的硬盘不会因云服务器的销毁而删除,硬盘内的数据也不会因此丢失。 |
获取云服务器
可根据云服务器ID,状态,云服务器名称,镜像ID 作过滤条件,来获取云服务器列表。 如果不指定任何过滤条件,默认返回你所拥有的所有云服务器:
>>> ret = conn.describe_instances(limit=50)
>>> all_instances = ret['instance_set']
>>> ret = conn.describe_instances(status=['running'])
>>> running_instances = ret['instance_set']
>>> ret = conn.describe_instances(search_word='test')
>>> test_instances = ret['instance_set']
创建并加载硬盘
在同一个 zone 下的硬盘可加载到任何一个正在运行或处于关闭状态的云服务器上。
-
先创建一个硬盘。
>>> ret = conn.create_volumes( size=10, volume_name='demo vol' ) >>> volume_id = ret['volumes'][0]
-
检查这个硬盘的状态。
>>> ret = conn.describe_volumes(volumes=[volume_id]) >>> volume = ret['volume_set'][0] >>> volume.status u'available'
-
创建成功后将其加载到云服务器。
>>> ret = conn.attach_volumes(volumes=[volume_id], instance='instance-id')
-
硬盘加载成功后,需要到加载的云服务器上进一步手动操作,具体可参考硬盘初始化及分区 。
函数列表
APIConnection 中包括各项资源的操作函数,简单罗列如下:
Image 镜像
-
describe_images - 获取镜像列表
-
capture_instance - 基于云服务器创建自有镜像
-
delete_images - 删除自有镜像
-
modify_image_attributes - 修改镜像基本属性
Instance 云服务器
-
describe_instances - 获取云服务器列表
-
run_instances - 创建云服务器
-
terminate_instances - 销毁云服务器
-
stop_instances - 关机
-
restart_instances - 重启云服务器
-
start_instances - 开机
-
reset_instances - 重置云服务器(会将系统盘恢复到初始状态,慎用)
-
resize_instances - 修改云服务器 CPU 内存配置
-
modify_instance_attributes - 修改云服务器基本属性
-
upload_userdata - 上传 UserData
Volume 硬盘
-
describe_volumes - 获取硬盘列表
-
create_volumes - 创建硬盘
-
delete_volumes - 删除硬盘
-
attach_volumes - 挂载
-
detach_volumes - 卸载
-
resize_volumes - 扩容
-
modify_volume_attributes - 修改硬盘基本属性
KeyPair 密钥
-
describe_key_pairs - 获取 SSH 密钥列表
-
attach_keypairs - 加载密钥
-
detach_keypairs - 卸载密钥
-
create_keypair - 创建新密钥对
-
delete_keypairs - 删除密钥
-
modify_keypair_attributes - 修改密钥基本属性
Security Group 防火墙
-
describe_security_groups - 获取防火墙列表
-
create_security_group - 创建新防火墙
-
modify_security_group_attributes - 修改防火墙属性
-
apply_security_group - 应用防火墙规则
-
delete_security_groups - 删除防火墙
-
describe_security_group_rules - 获取防火墙规则列表
-
add_security_group_rules - 添加规则
-
delete_security_group_rules - 删除规则
-
modify_security_group_rule_attributes - 修改规则
-
describe_security_group_ipsets - 获取 IP/端口集合
-
create_security_group_ipset - 创建 IP/端口集合
-
delete_security_group_ipsets - 删除 IP/端口集合
-
modify_security_group_ipset_attributes - 修改 IP/端口集合
Vxnet 私有网络
-
describe_vxnets - 获取私有网络列表
-
create_vxnets - 创建私有网络
-
join_vxnet - 将云服务器加入网络
-
leave_vxnet - 云服务器离开网络
-
delete_vxnets - 删除私有网络
-
modify_vxnet_attributes - 修改网络基本属性
-
describe_vxnet_instances - 获取网络内的云服务器
Router 路由器
-
describe_routers - 获取路由器列表
-
create_routers - 创建新路由器
-
delete_routers - 删除路由器
-
update_routers - 更新路由器的改动
-
poweroff_routers - 关闭
-
poweron_routers - 开启
-
join_router - 连接私有网络和路由器
-
leave_router - 断开私有网络和路由器
-
modify_router_attributes - 修改路由器基本属性
-
describe_router_vxnets - 获取路由器连接的私有网络
-
describe_router_statics - 获取路由器规则,包括端口转发、VPN、隧道、访问控制等
-
modify_router_static_attributes - 修改路由器规则
-
add_router_statics - 添加路由器规则
-
delete_router_statics - 删除规则
-
modify_router_static_entry_attributes - 修改路由器规则的配置项,如 VPN 账号
-
describe_router_static_entries - 获取路由器规则的配置项
-
add_router_static_entries - 添加路由器规则的配置项
-
delete_router_static_entries - 删除路由器规则的配置项
Eip 公网IP
-
describe_eips - 获取公网 IP 列表
-
associate_eip - 绑定公网 IP 到资源
-
dissociate_eips - 解绑公网 IP
-
allocate_eips - 申请公网 IP
-
release_eips - 释放公网 IP
-
change_eips_bandwidth - 调整带宽
-
change_eips_billing_mode - 调整 eip 计费模式
-
modify_eip_attributes - 修改公网 IP 基本属性
LB 负载均衡器
-
describe_loadbalancers - 获取负载均衡器列表
-
create_loadbalancer - 创建负载均衡器
-
delete_loadbalancers - 删除负载均衡器
-
modify_loadbalancer_attributes - 修改负载均衡器基本属性
-
associate_eips_to_loadbalancer - 绑定公网 IP 到负载均衡器
-
dissociate_eips_from_loadbalancer - 解绑公网 IP
-
start_loadbalancers - 开启
-
stop_loadbalancers - 关闭
-
update_loadbalancers - 更新负载均衡器
-
describe_loadbalancer_listeners - 获取负载均衡器监听器列表
-
add_listeners_to_loadbalancer - 添加监听器
-
modify_loadbalancer_listener_attributes - 修改监听器基本属性
-
delete_loadbalancer_listeners - 删除监听器
-
describe_loadbalancer_backends - 获取负载均衡器后端服务列表
-
add_backends_to_listener - 添加后端服务
-
modify_loadbalancer_backend_attributes - 修改后端服务基本属性
-
delete_loadbalancer_backends - 删除后端服务
-
create_loadbalancer_policy - 新建转发策略
-
describe_loadbalancer_policies - 获取转发策略
-
modify_loadbalancer_policy_attributes - 修改转发策略
-
apply_loadbalancer_policy - 使转发策略生效
-
delete_loadbalancer_policies - 删除转发策略
-
add_loadbalancer_policy_rules - 添加转发策略规则
-
describe_loadbalancer_policy_rules - 获取转发策略规则
-
modify_loadbalancer_policy_rule_attributes - 修改转发策略规则
-
delete_loadbalancer_policy_rules - 删除转发策略规则
SSL 证书
-
create_server_certificate - 新建 SSL 证书
-
describe_server_certificates - 获取 SSL 证书
-
modify_server_certificate_attributes - 修改 SSL 证书基本属性
-
delete_server_certificates - 删除 SSL 证书
Monitor 监控
-
get_monitoring_data - 获取云服务器、IP、路由器监控数据
-
get_loadbalancer_monitoring_data - 获取负载均衡器监控数据
Snapshot 备份
-
describe_snapshots - 获取备份列表
-
create_snapshots - 创建备份
-
delete_snapshots - 删除备份
-
apply_snapshots - 基于备份回滚数据
-
modify_snapshot_attributes - 修改备份基本属性
-
capture_instance_from_snapshot - 基于云服务器的备份创建自有镜像
-
create_volume_from_snapshot - 基于硬盘的备份创建新硬盘
DNS Alias 内网域名别名
-
describe_dns_aliases - 获取内网域名别名列表
-
associate_dns_alias - 给资源关联内外域名别名
-
dissociate_dns_aliases - 解除资源的内网域名别名
-
get_dns_label - 获取内网域名的标签,用于组成内网域名
标签
-
describe_tags - 获取标签
-
create_tag - 新建标签
-
delete_tags - 删除标签
-
modify_tag_attributes - 修改标签
-
attach_tags - 绑定标签
-
detach_tags - 解绑标签
SD-WAN
-
describe_wan_accesss - 获取sdwan接入点信息
-
change_wan_access_bandwidth - 修改接入点弹性带宽
-
upgrade_wan_access - 调整接入点基础带宽
-
get_wan_monitor - 获取接入点监控数据
操作日志
-
describe_jobs- 获取资源操作日志,如创建,删除资源等
可用区
-
describe_zones- 获取当前用户可用区
消息中心
-
describe_notification_center_user_posts - 获取消息中心的通知