git clone -b v1.17.0 https://github.com/gabime/spdlog.git
cd spdlog
mkdir build
cd build
cmake -DCMAKE_POSITION_INDEPENDENT_CODE=ON -DBUILD_SHARED_LIBS=ON ..
make
sudo make install
git clone https://github.com/huaweicloud/huaweicloud-sdk-cpp-v3.git
cd huaweicloud-sdk-cpp-v3
mkdir build
cd build
cmake -DBUILD_SERVICE=cce -DSERVICE_VERSION=v3 ..
make
sudo make install
English | 简体中文
华为云开发者 C++ 软件开发工具包(C++ SDK)
欢迎使用华为云 C++ SDK。
华为云 C++ SDK 让您无需关心请求细节即可快速使用弹性云服务器(ECS)、虚拟私有云(VPC)等多个华为云服务。
这里将向您介绍如何获取并使用华为云 C++ SDK 。
项目说明
使用前提
要使用华为云 C++ SDK ,您需要拥有云账号以及该账号对应的 Access Key(AK)和 Secret Access Key(SK)。 请在华为云控制台“我的凭证-访问密钥”页面上创建和查看您的 AK&SK 。更多信息请查看 访问密钥 。
要使用华为云 C++ SDK 访问指定服务的 API ,您需要确认已在 华为云控制台 开通当前服务。
华为云 C++ SDK 支持 C++ 14 及以上版本,要求安装 CMake 3.10 及以上版本。
隐私声明
收集信息: 为完成华为云服务开放API调用的必要校验,SDK需要使用由华为云控制台下载的用户访问密钥(AK)进行签名,该过程不会上传您的私有密钥(SK)。
数据处理方式:当您使用本工具提供的服务开放API功能时,您的相关数据(如上传的文件、提交的文本内容)将通过加密传输通道(HTTPS) 直接发送至华为云服务端进行处理。
该过程由华为云服务端完成计算、存储或分析,数据不会在本应用客户端本地处理或持久化存储。
华为云将根据其服务协议和隐私政策作为数据处理方独立处理这些数据,我们仅作为控制方发起API请求。数据处理结果将返回至本工具供您使用。
华为云官方隐私声明:https://www.huaweicloud.com/declaration/sa_prp.html
SDK 获取和安装
您可以通过 SDK中心 或 Github Releases 查询SDK版本信息。
依赖的第三方库
curl、boost、cpprestsdk、spdlog、openssl、rttr在 Linux 系统上安装 SDK
Step 1:获取依赖包
所需的这些第三方软件包在大部分系统的包管理工具中都有提供:
例如基于 Debian/Ubuntu 的系统
spdlog 需要从源码进行安装, 生成对应的动态库,推荐使用v1.17.0版本,如果您本地安装其他版本的spdlog,建议参考官网文档进行源码安装 https://github.com/gabime/spdlog 。
对于使用bson编码的服务(kvs),需要安装libbson,编译sdk时设置LIBBSON_DIR指定libbson根目录
Step 2:编译安装
默认构建一个服务,以下以cce服务的v3版本为例
完成上述操作后,**C++ SDK 安装目录为
/usr/local**。特殊说明
产物中的
libcore可能会与其他动态库名字发生冲突,可以在源码中手动改名后再构建,以避免冲突。 以下以编译vpc包为例,产物改名为core_change_name_demo1、修改
/huaweicloud-sdk-cpp-v3/core/CMakeLists.txt中的core为core_change_name_demo,涉及改动点已通过注释标明。2、修改/huaweicloud-sdk-cpp-v3/vpc/src/v2/CMakeLists.txt,将链接的库名从
core修改为core_change_name_demo,修改点已用注释标明。在 Windows 系统上安装 SDK
Step 1:安装 vcpkg 并使用 vcpkg 安装所需软件包
对于使用bson编码的服务(kvs),需要安装libbson,编译sdk时设置LIBBSON_INCLUDE_DIRS和LIBBSON_LIBRARY_DIRS指定头文件和库文件路径
Step 2:使用 CLion 进行编译
使用 CLion 打开
huaweicloud-sdk-cpp-v3目录选择
File→Settings选择
Build, Execution, Deployment→CMake在
CMake options中加入-DCMAKE_TOOLCHAIN_FILE={your vcpkg install dir}/scripts/buildsystems/vcpkg.cmake右键
CMakeLists.txt选择Load CMake Project配置clion的编译工具链为MSVC: 在第3步的
CMake配置页面选择Toolchain为Visual Studio,不能选择mingw等其他编译器(windows平台下依赖msvc 编译器, 选择mingw等其他编译器编译会报错)。另外,用户还可以选择编译出来的二进制文件是Debug模式还是Release 模式, 选择Build Type进行下拉选择即可。配置目标文件的架构和平台: windows平台支持编译不同CPU架构(x64, x86)的sdk链接库文件,用户可以根据实际需要进行配置,点击
Build, Execution, Deployment→Toolchains, 在Architecture 选项可以下拉选择支持的CPU架构。选择
Build开始编译,编译结果会在clion控制台进行打印。Step 3:安装 C++ SDK
编译完成后选择
Build→Install完成上述操作后,C++ SDK 安装目录为
C:\Program File (x86)\huaweicloud-sdk-cpp-v3。代码示例
使用如下代码同步查询指定 Region 下的 VPC 列表,实际使用中请将
VpcClient替换为您使用的产品/服务相应的{Service}Client。认证用的ak和sk硬编码到代码中或者明文存储都有很大的安全风险,建议在配置文件或者环境变量中密文存放,使用时解密,确保安全。
本示例中的ak和sk保存在环境变量中,运行本示例前请先配置环境变量
HUAWEICLOUD_SDK_AK和HUAWEICLOUD_SDK_SK。如果您是在 Linux 系统中运行该代码,请复制上述文件到 vpc_test.cpp。然后执行如下命令:
如果您是在 Windows系统下使用cmake来管理工程,则需要在CMakeLists.txt 中引入sdk core包和服务包的相关依赖。 可以参考下面的CMakeLists.txt 文件:
在线调试
API Explorer 提供API检索、SDK示例及平台调试,支持全量快速检索、可视化调试、帮助文档查看、在线咨询。
变更日志
每个版本的详细更改记录可在 变更日志 中查看。
用户手册
1. 客户端连接参数
1.1 默认配置
1.2 网络代理
1.3 超时配置
1.4 SSL 配置
2. 认证信息配置
华为云服务存在两种部署方式,Region 级服务和 Global 级服务。
Global 级服务当前仅支持 IAM 。
Region 级服务需要提供 projectId 。
Global 级服务需要提供 domainId 。
客户端认证可以使用永久 AK&SK 认证,也可以使用临时 AK&SK&SecurityToken 认证。
认证参数说明:
ak华为云账号 Access Keysk华为云账号 Secret Access KeyprojectId云服务所在项目 ID ,根据你想操作的项目所属区域选择对应的项目 IDdomainId华为云账号 IDsecurityToken采用临时 AK&SK 认证场景下的安全票据2.1 使用永久 AK 和 SK
说明:
3.0.16-beta及以上版本支持自动获取 projectId/domainId ,用户需要指定当前华为云账号的永久 AK&SK 和 对应的 region_id,同时在初始化客户端时配合withRegion()方法使用。 代码示例详见 3.2 指定Region方式(推荐) 。2.2 使用临时 AK 和 SK
首先需要获得临时 AK、SK 和 SecurityToken ,可以从永久 AK&SK 获得,或者通过委托授权获得。
通过永久 AK&SK 获得可以参考文档:https://support.huaweicloud.com/api-iam/iam_04_0002.html ,对应 IAM SDK 中的
CreateTemporaryAccessKeyByToken方法。通过委托授权获得可以参考文档:https://support.huaweicloud.com/api-iam/iam_04_0101.html ,对应 IAM SDK 中的
CreateTemporaryAccessKeyByAgency方法。临时 AK&SK&SecurityToken 获取成功后,可使用如下方式初始化认证信息:
3. 客户端初始化
3.1 指定云服务 Endpoint 方式
说明:
endpoint是华为云各服务应用区域和各服务的终端节点,详情请查看 地区和终端节点 。当用户使用指定 Region 方式无法自动获取 projectId 时,可以使用当前方式调用接口。
3.2 指定Region 方式(推荐)
说明:
指定 Region 方式创建客户端的场景,支持自动获取用户的 projectId 或者 domainId,初始化认证信息时可无需指定相应参数。
不适用于
多ProjectId的场景。当前支持指定 Region 方式初始化客户端的 region_id : af-south-1, ap-southeast-1, ap-southeast-2, ap-southeast-3, cn-east-2, cn-east-3, cn-north-1, cn-north-4, cn-south-1, cn-southwest-2, ru-northwest-2。调用其他 region 可能会抛出
Unsupported regionId的异常信息。两种方式对比:
4. 发送请求并查看响应
4.1 异常处理
5. 异步客户端使用
6. 故障处理
SDK 提供 Access 级别的访问日志,用户可根据需要进行配置。
6.1 访问日志
SDK 支持打印 Access 级别的访问日志,需要用户手动打开日志开关,支持打印到控制台或者指定的文件。示例如下:
说明:
withFileLogger支持如下配置:logPath: 日志文件路径enable: 日志文件使能withStreamLogger支持如下配置:enable: 使能控制台输出日志打开日志开关后,每次请求都会有一条记录,如:
日志格式为:
7. 配置 CMakeLists.txt
SET ENABLE_BSON IS ON
option(ENABLE_BSON “Enable bson library” ON)