SDRS服务复制对管理示例
引导式阅读
Go
SDRS服务复制对管理示例
作者
C***
上架时间
2023-11-10 02:42:18

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-corehuaweicloud-sdk-sdrs,具体的SDK版本号请参见 SDK开发中心

pip install huaweicloudsdksdrs

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}" )

相关参数说明如下所示:

  • HUAWEICLOUD_SDK_AK:华为云账号Access Key。
  • HUAWEICLOUD_SDK_SK:华为云账号Secret Access Key 。

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 发送请求

以创建复制对为例:

response = sdrs_client.create_replication(request)

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 发送请求

response = sdrs_client.create_replication(request)

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 发送请求

response = sdrs_client.delete_replication(request)

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 发送请求

response = sdrs_client.update_replication_name(request)

5.3.3 接口及参数说明

请见 更新复制对名称接口

5.4 查询复制对详情

具体demo见SdrsReplicationDemo.showReplication()方法

5.4.1 构造请求参数

request = ShowReplicationRequest( replication_id="${replication_id}" )

5.4.2 发送请求

response = sdrs_client.show_replication(request)

5.4.3 接口及参数说明

请见 查询复制对详情接口

6. FAQ

暂无

7. 参考

更多信息请参考 SDRS服务文档