物联网数据分析(IoTA)-资产模型管理
引导式阅读
Java
物联网数据分析(IoTA)-资产模型管理
作者
C***
上架时间
2023-11-13 01:59:40

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. 修订记录

发布日期 文档版本 修订说明
2021-12-22 1.0 文档首次发布