0. 版本说明
本示例基于华为云Java SDK V3.0版本开发
1. 简介
基于华为云Java SDK, 与资产模型的相关操作
2. 开发前准备
已注册华为云, 并完成实名认证;
已获取华为云账号对应的Access Key(AK)和Secret Access Key(SK);
Java JDK 1.8及其以上版本
3. 安装SDK
通过 Maven 安装项目依赖是使用 Java SDK 的推荐方法,首先您需要在您的操作系统中下载并安装 Maven ,安装完成后您只需在 Java 项目的 pom.xml 文件加入相应的依赖项即可。
本示例使用iotanalytics SDK
Copied!
<dependency>
<groupId>com.huaweicloud.sdk</groupId>
<artifactId>huaweicloud-sdk-iotanalytics</artifactId>
<version>3.0.72</version>
</dependency>
4. 开始使用
4.1 导入依赖模块
Copied!
import com.huaweicloud.sdk.core.auth.BasicCredentials;
import com.huaweicloud.sdk.core.exception.ServiceResponseException;
import com.huaweicloud.sdk.iotanalytics.v1.IoTAnalyticsClient;
import com.huaweicloud.sdk.iotanalytics.v1.model.*;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
4.2.1 配置客户端属性
Copied!
HttpConfig config = HttpConfig.getDefaultHttpConfig();
config.withIgnoreSSLVerification(true);
4.2.2 初始化认证信息
Copied!
BasicCredentials auth = new BasicCredentials()
.withAk(ak)
.withSk(sk);
4.2.3 初始化客户端
Copied!
GslClient ecsClient = GslClient.newBuilder()
.withHttpConfig(config)
.withCredential(auth)
.build();
5. 示例代码
使用如下代码对资产模型进行相关操作,调用前请根据实际情况替换如下变量:
通用参数: {your ak string}、{your sk string} , 以及各个方法中包含的参数。
Copied!
package com.huawei.iotanalytics;
public class AssetModelApplication {
private static final Logger logger = LoggerFactory.getLogger(AssetModelApplication.class);
public static void main(String[] args) {
String ak = System.getenv("HUAWEICLOUD_SDK_AK");
String sk = System.getenv("HUAWEICLOUD_SDK_SK");
String endpoint = "{your endpoint string}";
String projectId = "{your project id}";
HttpConfig config = HttpConfig.getDefaultHttpConfig();
config.withIgnoreSSLVerification(true);
BasicCredentials auth = new BasicCredentials()
.withAk(ak)
.withSk(sk)
.withProjectId(projectId);
IoTAnalyticsClient ioTAnalyticsClient = IoTAnalyticsClient.newBuilder()
.withHttpConfig(config)
.withCredential(auth)
.withEndpoint(endpoint)
.build();
createAssetModel(ioTAnalyticsClient);
showAssetModel(ioTAnalyticsClient);
}
public static void createAssetModel(IoTAnalyticsClient client) {
try {
AssetModelAddRequest assetModelAddRequest = new AssetModelAddRequest();
List<AnalysisModelRequest> analysisModelRequests = getAnalysisModelRequests();
List<PropertyModelRequest> propertyModelRequests = getPropertyModelRequests();
assetModelAddRequest.setName("IoTA_SDK_CreateAssetModel_Test_01");
assetModelAddRequest.setDisplayName("IoTA_SDK_CreateAssetModel_Test_01");
assetModelAddRequest.setAnalyses(analysisModelRequests);
assetModelAddRequest.setProperties(propertyModelRequests);
CreateAssetModelRequest createAssetModelRequest = new CreateAssetModelRequest();
createAssetModelRequest.setBody(assetModelAddRequest);
CreateAssetModelResponse assetModel = client.createAssetModel(createAssetModelRequest);
logger.info(assetModel.toString());
} catch (ServiceResponseException e) {
logger.error("HttpStatusCode: " + e.getHttpStatusCode());
logger.error("RequestId: " + e.getRequestId());
logger.error("ErrorCode: " + e.getErrorCode());
logger.error("ErrorMsg: " + e.getErrorMsg());
}
}
public static void showAssetModel(IoTAnalyticsClient client) {
try {
ShowAssetModelRequest showAssetModelRequest = new ShowAssetModelRequest();
showAssetModelRequest.setModelId("your modelId");
ShowAssetModelResponse showAssetModelResponse = client.showAssetModel(showAssetModelRequest);
logger.info(showAssetModelResponse.toString());
} catch (ServiceResponseException e) {
logger.error("HttpStatusCode: " + e.getHttpStatusCode());
logger.error("RequestId: " + e.getRequestId());
logger.error("ErrorCode: " + e.getErrorCode());
logger.error("ErrorMsg: " + e.getErrorMsg());
}
}
}
7. 修订记录
发布日期 |
文档版本 |
修订说明 |
2021-12-22 |
1.0 |
文档首次发布 |
0. 版本说明
本示例基于华为云Java SDK V3.0版本开发
1. 简介
基于华为云Java SDK, 与资产模型的相关操作
2. 开发前准备
已注册华为云, 并完成实名认证; 已获取华为云账号对应的Access Key(AK)和Secret Access Key(SK); Java JDK 1.8及其以上版本
3. 安装SDK
通过 Maven 安装项目依赖是使用 Java SDK 的推荐方法,首先您需要在您的操作系统中下载并安装 Maven ,安装完成后您只需在 Java 项目的 pom.xml 文件加入相应的依赖项即可。 本示例使用iotanalytics SDK
<dependency> <groupId>com.huaweicloud.sdk</groupId> <artifactId>huaweicloud-sdk-iotanalytics</artifactId> <version>3.0.72</version> </dependency>
4. 开始使用
4.1 导入依赖模块
// 用户身份认证 import com.huaweicloud.sdk.core.auth.BasicCredentials; // 请求异常类 import com.huaweicloud.sdk.core.exception.ServiceResponseException; // 导入相应产品的 {Service}Client import com.huaweicloud.sdk.iotanalytics.v1.IoTAnalyticsClient; // 导入待请求接口的 request 和 response 类 import com.huaweicloud.sdk.iotanalytics.v1.model.*; // 日志打印 import org.slf4j.Logger; import org.slf4j.LoggerFactory;
4.2.1 配置客户端属性
HttpConfig config = HttpConfig.getDefaultHttpConfig(); config.withIgnoreSSLVerification(true);
4.2.2 初始化认证信息
BasicCredentials auth = new BasicCredentials() .withAk(ak) .withSk(sk);
4.2.3 初始化客户端
GslClient ecsClient = GslClient.newBuilder() .withHttpConfig(config) .withCredential(auth) .build();
5. 示例代码
使用如下代码对资产模型进行相关操作,调用前请根据实际情况替换如下变量: 通用参数: {your ak string}、{your sk string} , 以及各个方法中包含的参数。
package com.huawei.iotanalytics; public class AssetModelApplication { private static final Logger logger = LoggerFactory.getLogger(AssetModelApplication.class); public static void main(String[] args) { // 认证用的ak和sk硬编码到代码中或者明文存储都有很大的安全风险,建议在配置文件或者环境变量中密文存放,使用时解密,确保安全; // 本示例以ak和sk保存在环境变量中来实现身份认证为例,运行示例前请先在本地环境中设置环境变量HUAWEICLOUD_SDK_AK和HUAWEICLOUD_SDK_SK。 String ak = System.getenv("HUAWEICLOUD_SDK_AK"); String sk = System.getenv("HUAWEICLOUD_SDK_SK"); String endpoint = "{your endpoint string}"; String projectId = "{your project id}"; // 配置客户端属性 HttpConfig config = HttpConfig.getDefaultHttpConfig(); // 根据需要配置是否跳过SSL证书验证 config.withIgnoreSSLVerification(true); // 创建认证 BasicCredentials auth = new BasicCredentials() .withAk(ak) .withSk(sk) .withProjectId(projectId); // 创建IoTAnalyticsClient实例并初始化 IoTAnalyticsClient ioTAnalyticsClient = IoTAnalyticsClient.newBuilder() .withHttpConfig(config) .withCredential(auth) .withEndpoint(endpoint) .build(); // 通过SDK,调用创建资产模型接口 createAssetModel(ioTAnalyticsClient); // 通过SDK,调用获取资产模型详情接口 showAssetModel(ioTAnalyticsClient); } /** * 创建资产模型 */ public static void createAssetModel(IoTAnalyticsClient client) { try { AssetModelAddRequest assetModelAddRequest = new AssetModelAddRequest(); // 构造构造分析任务集,最多50个 List<AnalysisModelRequest> analysisModelRequests = getAnalysisModelRequests(); // 构造属性集,最多200个 List<PropertyModelRequest> propertyModelRequests = getPropertyModelRequests(); assetModelAddRequest.setName("IoTA_SDK_CreateAssetModel_Test_01"); assetModelAddRequest.setDisplayName("IoTA_SDK_CreateAssetModel_Test_01"); assetModelAddRequest.setAnalyses(analysisModelRequests); assetModelAddRequest.setProperties(propertyModelRequests); CreateAssetModelRequest createAssetModelRequest = new CreateAssetModelRequest(); createAssetModelRequest.setBody(assetModelAddRequest); CreateAssetModelResponse assetModel = client.createAssetModel(createAssetModelRequest); // 输出json格式的字符串响应 logger.info(assetModel.toString()); } catch (ServiceResponseException e) { logger.error("HttpStatusCode: " + e.getHttpStatusCode()); logger.error("RequestId: " + e.getRequestId()); logger.error("ErrorCode: " + e.getErrorCode()); logger.error("ErrorMsg: " + e.getErrorMsg()); } } /** * 获取资产模型详情 */ public static void showAssetModel(IoTAnalyticsClient client) { try { ShowAssetModelRequest showAssetModelRequest = new ShowAssetModelRequest(); showAssetModelRequest.setModelId("your modelId"); ShowAssetModelResponse showAssetModelResponse = client.showAssetModel(showAssetModelRequest); // 输出json格式的字符串响应 logger.info(showAssetModelResponse.toString()); } catch (ServiceResponseException e) { logger.error("HttpStatusCode: " + e.getHttpStatusCode()); logger.error("RequestId: " + e.getRequestId()); logger.error("ErrorCode: " + e.getErrorCode()); logger.error("ErrorMsg: " + e.getErrorMsg()); } } }
6. 参考
详细了解数据分析,请参考IoT数据分析
更多关于SDK的调用,请参考华为云开发者 Java 软件开发工具包(Java SDK)
7. 修订记录