SDRS服务复制对管理示例
版本说明
本示例基于华为云SDK开发
1. 简介
华为云提供了SDRS服务端SDK,您可以直接集成服务端SDK来调用SDRS的相关API,从而实现对SDRS服务的快速操作。该示例展示了如何通过Python版SDK对复制对进行管理,其中包括增(创建复制对),删(删除复制对),改(修改复制对),查(查询复制对)。
2. 开发前准备
- 已 注册 华为云,并完成 实名认证 。
- 已具备开发环境 ,支持Python3及其以上版本。
- 已获取华为云账号对应的Access Key(AK)和Secret Access Key(SK)。请在华为云控制台“我的凭证 > 访问密钥”页面上创建和查看您的AK/SK。具体请参见 访问密钥 。
- 已获取SDRS服务对应区域的项目ID,请在华为云控制台“我的凭证 > API凭证”页面上查看项目ID。具体请参见 API凭证 。
3. 安装SDK
使用服务端SDK前,您需要安装huaweicloud-sdk-core
和huaweicloud-sdk-sdrs
,具体的SDK版本号请参见 SDK开发中心 。
Copied!
pip install huaweicloudsdksdrs
4. 开始使用
4.1 导入依赖模块
Copied!
import os
//用户身份认证
from huaweicloudsdkcore.auth.credentials import BasicCredentials
//异常类
from huaweicloudsdkcore.exceptions.exceptions import ClientRequestException
from huaweicloudsdkcore.exceptions.exceptions import ServerResponseException
//SDRS客户端
from huaweicloudsdksdrs.v1.sdrs_client import SdrsClient
//SDRS创建复制对相关类
from huaweicloudsdksdrs.v1.model.create_replication_request import CreateReplicationRequest
from huaweicloudsdksdrs.v1.model.create_replication_request_body import CreateReplicationRequestBody
from huaweicloudsdksdrs.v1.model.create_replication_request_params import CreateReplicationRequestParams
from huaweicloudsdksdrs.v1.model.delete_replication_request import DeleteReplicationRequest
from huaweicloudsdksdrs.v1.model.delete_replication_request_body import DeleteReplicationRequestBody
from huaweicloudsdksdrs.v1.model.delete_replication_request_params import DeleteReplicationRequestParams
from huaweicloudsdksdrs.v1.model.show_replication_request import ShowReplicationRequest
from huaweicloudsdksdrs.v1.model.update_replication_name_request import UpdateReplicationNameRequest
from huaweicloudsdksdrs.v1.model.update_replication_name_request_body import UpdateReplicationNameRequestBody
from huaweicloudsdksdrs.v1.model.update_replication_name_request_params import UpdateReplicationNameRequestParams
4.2 初始化认证信息
Copied!
__ak = os.environ["HUAWEICLOUD_SDK_AK"]
__sk = os.environ["HUAWEICLOUD_SDK_SK"]
credentials = BasicCredentials(
ak=__ak,
sk=__sk,
project_id="${project_id}"
)
相关参数说明如下所示:
- HUAWEICLOUD_SDK_AK:华为云账号Access Key。
- HUAWEICLOUD_SDK_SK:华为云账号Secret Access Key 。
4.3 初始化SDRS服务的客户端
Copied!
config = HttpConfig.get_default_config()
config.ignore_ssl_verification = True
config.proxy_protocol = "http"
sdrs_client = SdrsClient.new_builder() \
.with_credentials(credentials=credentials) \
.with_http_config(config=config) \
.with_endpoint(endpoint="${sdrs_endpoint}") \
.build()
相关参数说明如下所示:
Credential: 用户认证信息,见4.2的初始化认证信息
Endpoint: SDRS服务域名,当前SDRS服务支持的region信息见 地区和终端节点信息
HttpConfig: 客户端属性
4.4 配置请求参数
以创建复制对为例:
Copied!
request_params = CreateReplicationRequestParams(
server_group_id="${server_group_id}",
name="${name}",
description="${description}",
volume_id="${volume_id}"
)
request = CreateReplicationRequest(
body=CreateReplicationRequestBody(
replication=request_params
)
)
相关demo说明见 5. SDK demo代码解析
4.5 发送请求
以创建复制对为例:
Copied!
response = sdrs_client.create_replication(request)
5. SDK demo代码解析
5.1 创建云硬盘快照
demo请见SdrsReplicationDemo.createReplication()方法
5.1.1 构建请求参数
Copied!
request_params = CreateReplicationRequestParams(
server_group_id="${server_group_id}",
name="${name}",
description="${description}",
volume_id="${volume_id}"
)
request = CreateReplicationRequest(
body=CreateReplicationRequestBody(
replication=request_params
)
)
5.1.2 发送请求
Copied!
response = sdrs_client.create_replication(request)
5.1.3 接口及参数说明
请见 创建复制对接口
5.2 删除复制对
具体demo见SdrsReplicationDemo.deleteReplication()方法
5.2.1 构造请求参数
Copied!
request_params = DeleteReplicationRequestParams(
server_group_id="${server_group_id}",
delete_target_volume=True
)
request = DeleteReplicationRequest(
replication_id="${replication_id}",
body=DeleteReplicationRequestBody(
replication=request_params
)
)
5.2.2 发送请求
Copied!
response = sdrs_client.delete_replication(request)
5.2.3 接口及参数说明
请见 删除复制对接口
5.3 更新复制对名称
具体demo见SdrsReplicationDemo.updateReplication()方法
5.3.1 构造请求参数
Copied!
request_params = UpdateReplicationNameRequestParams(
name="${name}"
)
request = UpdateReplicationNameRequest(
replication_id="${replication_id}",
body=UpdateReplicationNameRequestBody(
replication=request_params
)
)
5.3.2 发送请求
Copied!
response = sdrs_client.update_replication_name(request)
5.3.3 接口及参数说明
请见 更新复制对名称接口
5.4 查询复制对详情
具体demo见SdrsReplicationDemo.showReplication()方法
5.4.1 构造请求参数
Copied!
request = ShowReplicationRequest(
replication_id="${replication_id}"
)
5.4.2 发送请求
Copied!
response = sdrs_client.show_replication(request)
5.4.3 接口及参数说明
请见 查询复制对详情接口
SDRS服务复制对管理示例
版本说明
本示例基于华为云SDK开发
1. 简介
华为云提供了SDRS服务端SDK,您可以直接集成服务端SDK来调用SDRS的相关API,从而实现对SDRS服务的快速操作。该示例展示了如何通过Python版SDK对复制对进行管理,其中包括增(创建复制对),删(删除复制对),改(修改复制对),查(查询复制对)。
2. 开发前准备
3. 安装SDK
使用服务端SDK前,您需要安装
huaweicloud-sdk-core
和huaweicloud-sdk-sdrs
,具体的SDK版本号请参见 SDK开发中心 。4. 开始使用
4.1 导入依赖模块
import os //用户身份认证 from huaweicloudsdkcore.auth.credentials import BasicCredentials //异常类 from huaweicloudsdkcore.exceptions.exceptions import ClientRequestException from huaweicloudsdkcore.exceptions.exceptions import ServerResponseException //SDRS客户端 from huaweicloudsdksdrs.v1.sdrs_client import SdrsClient //SDRS创建复制对相关类 from huaweicloudsdksdrs.v1.model.create_replication_request import CreateReplicationRequest from huaweicloudsdksdrs.v1.model.create_replication_request_body import CreateReplicationRequestBody from huaweicloudsdksdrs.v1.model.create_replication_request_params import CreateReplicationRequestParams from huaweicloudsdksdrs.v1.model.delete_replication_request import DeleteReplicationRequest from huaweicloudsdksdrs.v1.model.delete_replication_request_body import DeleteReplicationRequestBody from huaweicloudsdksdrs.v1.model.delete_replication_request_params import DeleteReplicationRequestParams from huaweicloudsdksdrs.v1.model.show_replication_request import ShowReplicationRequest from huaweicloudsdksdrs.v1.model.update_replication_name_request import UpdateReplicationNameRequest from huaweicloudsdksdrs.v1.model.update_replication_name_request_body import UpdateReplicationNameRequestBody from huaweicloudsdksdrs.v1.model.update_replication_name_request_params import UpdateReplicationNameRequestParams
4.2 初始化认证信息
# 认证用的ak和sk直接写到代码中有很大的安全风险,建议在配置文件或者环境变量中密文存放,使用时解密,确保安全; #本示例以ak和sk保存在环境变量中为例,运行本示例前请先在本地环境中设置环境变量HUAWEICLOUD_SDK_AK和HUAWEICLOUD_SDK_SK。 __ak = os.environ["HUAWEICLOUD_SDK_AK"] __sk = os.environ["HUAWEICLOUD_SDK_SK"] credentials = BasicCredentials( ak=__ak, sk=__sk, project_id="${project_id}" )
相关参数说明如下所示:
4.3 初始化SDRS服务的客户端
config = HttpConfig.get_default_config() config.ignore_ssl_verification = True config.proxy_protocol = "http" # build SDRS client sdrs_client = SdrsClient.new_builder() \ .with_credentials(credentials=credentials) \ .with_http_config(config=config) \ .with_endpoint(endpoint="${sdrs_endpoint}") \ .build()
相关参数说明如下所示:
Credential: 用户认证信息,见4.2的初始化认证信息
Endpoint: SDRS服务域名,当前SDRS服务支持的region信息见 地区和终端节点信息
HttpConfig: 客户端属性
4.4 配置请求参数
以创建复制对为例:
request_params = CreateReplicationRequestParams( server_group_id="${server_group_id}", name="${name}", description="${description}", volume_id="${volume_id}" ) request = CreateReplicationRequest( body=CreateReplicationRequestBody( replication=request_params ) )
相关demo说明见 5. SDK demo代码解析
4.5 发送请求
以创建复制对为例:
5. SDK demo代码解析
5.1 创建云硬盘快照
demo请见SdrsReplicationDemo.createReplication()方法
5.1.1 构建请求参数
request_params = CreateReplicationRequestParams( server_group_id="${server_group_id}", name="${name}", description="${description}", volume_id="${volume_id}" ) request = CreateReplicationRequest( body=CreateReplicationRequestBody( replication=request_params ) )
5.1.2 发送请求
5.1.3 接口及参数说明
请见 创建复制对接口
5.2 删除复制对
具体demo见SdrsReplicationDemo.deleteReplication()方法
5.2.1 构造请求参数
request_params = DeleteReplicationRequestParams( server_group_id="${server_group_id}", delete_target_volume=True ) request = DeleteReplicationRequest( replication_id="${replication_id}", body=DeleteReplicationRequestBody( replication=request_params ) )
5.2.2 发送请求
5.2.3 接口及参数说明
请见 删除复制对接口
5.3 更新复制对名称
具体demo见SdrsReplicationDemo.updateReplication()方法
5.3.1 构造请求参数
request_params = UpdateReplicationNameRequestParams( name="${name}" ) request = UpdateReplicationNameRequest( replication_id="${replication_id}", body=UpdateReplicationNameRequestBody( replication=request_params ) )
5.3.2 发送请求
5.3.3 接口及参数说明
请见 更新复制对名称接口
5.4 查询复制对详情
具体demo见SdrsReplicationDemo.showReplication()方法
5.4.1 构造请求参数
request = ShowReplicationRequest( replication_id="${replication_id}" )
5.4.2 发送请求
5.4.3 接口及参数说明
请见 查询复制对详情接口
6. FAQ
暂无
7. 参考
更多信息请参考 SDRS服务文档