云服务器内容精选

  • 场景说明 通过IoTDA规则流转能力实现自动调用合约将数据流转到 BCS 区块链服务实现数据可信上链,助力客户构建可信多方协作平台,使用 区块链 可减少人为纠纷,提高交易效率;区块链的不可篡改性降低了欺诈和网络错误的发生;共享的账本、流程、记录增进参与方之间的可信度;审计机构可随时对不可篡改的账本进行审计。IoTDA企业版实例支持将数据流转到B CS 华为云区块链引擎实例(推荐)和Hyperledger Fabric增强版。 本示例分为两部分,将设备上报的数据转发到华为云区块链引擎实例(推荐)和Hyperledger Fabric增强版上链。 Hyperledger Fabric增强版由于开源内核限制,不支持高tps场景使用。建议使用性能更好的华为云区块链引擎实例。
  • 模拟数据上报及结果验证 使用MQTT模拟器连接到平台(模拟器使用请参考:使用MQTT.fx调测)。 使用模拟器进行消息上报,详情请参考:设备消息上报。 上报内容如下: { "id": "2", "device_id" : "6459f49b97bacf7a56439f97_321135434425", "report_time":"2023-10-24 19:39:42", "province":"guangzhou", "city": "guangdong", "daily_power_generation": 11, "total_power_generation": 22, "total_power": 324, "running_status": "OFFLINE" } 前往DWS控制台,查看是否收到转发的消息。 图18 查看DWS消息 前往Astro大屏服务查看监控视图。 图19 监控大屏数据
  • 配置Astro大屏服务 登录华为云官方网站,访问Astro大屏服务。 选择进入首页, 新建项目。 图13 新建项目 进入新建项目后,单击“新建页面”。单击“新建空白页”完成页面创建。 图14 新建空白页 可通过拖拉的方式,将组件中的元素拉到页面,从而完成页面设计。详情请参考开发页面。 图15 最终页面展示 设置数据源,选中一个视图组件,如图单击数据按钮。 图16 设置数据源 数据类型选择DWS,并配置DWS数据源,配置流程中通过sql语句查询DWS数据,并在组件预览中将查询出来的数据与组件的配置做映射。详情参考数据集管理。 图17 配置数据 参考上述步骤完成所有组件的配置。
  • 数据上报及验证数据是否转发成功 使用MQTT模拟器连接到平台(模拟器使用请参考:使用MQTT.fx调测)。 使用模拟器进行消息上报(参考:设备消息上报)。上报内容如下: { "id": "2", "device_id" : "6459f49b97bacf7a56439f97_321135434423", "report_time":"2023-10-19 19:39:42", "province":"guangzhou", "city": "shengzhen", "daily_power_generation": 32, "total_power_generation": 108, "total_power": 1023, "running_status": "ONLINE" } 前往Kafka控制台,查看是否收到转发的消息。 图6 查看Kafka消息
  • 配置DWS 数据仓库 服务 登录华为云官方网站,访问数据仓库服务。 单击“进入控制台”。 访问数据仓库服务控制台“集群管理”页面,选择购买的集群,若无集群,则参考购买集群,购买集群后,单击登录集群。 登录集群后,单击新建数据库,创建数据库。 图7 创建数据库 单击SQL查询, 进入SQL查询页面, 执行以下SQL语句创建数据表。 CREATE TABLE IF NOT EXISTS power_test_dws ( "id" BIGINT, "report_time" TIMESTAMP, "province" varchar(255), "city" varchar(255), "device_id" varchar(255) NOT NULL, "daily_power_generation" numeric(10,2), "total_power_generation" numeric(10,2), "total_power" numeric(10,1), "running_status" varchar(10), CONSTRAINT "device_uniqe" UNIQUE ("device_id", "report_time") ) WITH (ORIENTATION = COLUMN, PERIOD='15 days', storage_policy = 'LMT:180') PARTITION BY RANGE (report_time);
  • 前提条件 已注册华为官方账号。未注册可参考注册华为账户完成注册。 已完成实名制认证。未完成可在华为云上单击实名认证完成认证,否则会影响后续云服务的开通。 已开通 设备接入服务 。未开通则访问设备接入服务,单击“免费试用”或单击“价格计算器”购买并开通该服务。 已开通Kafka服务。未开通则访问Kafka服务,单击“立即购买”后开通该服务。 已开通 数据湖探索 服务。未开通则访问 数据湖 探索服务,单击“立即购买”后开通该服务。 已开通云数据仓库 GaussDB (DWS)服务。未开通则访问云数据仓库GaussDB(DWS)服务,单击“购买”后开通该服务。 已开通Astro大屏服务, 未开通则访问Astro大屏应用,单击“立即使用”后开通该服务。
  • 转发方式概述 设备接入到 物联网平台 后,便可与物联网平台进行通信。设备通过自定义Topic或产品模型方式将数据上报到平台,在控制台设置后,通过订阅推送的方式,将设备生命周期变更、设备属性上报、设备消息上报、设备消息状态变更、设备状态变更、批量任务状态变更等消息转发到您指定的服务器。 当前华为物联网平台支持HTTP/HTTPS、AMQP、MQTT和设备间通信四种数据转发方式。 HTTP/HTTPS方式 订阅:应用服务器通过调用物联网平台的创建规则触发条件、创建规则动作、修改规则触发条件接口配置并激活规则,或者在控制台创建订阅任务,向平台获取发生变更的设备业务信息(如设备生命周期管理、设备数据上报、设备消息状态、设备状态等)和管理信息(软固件升级状态和升级结果)。订阅时必须指定应用服务器的URL,也称为回调地址。(什么是回调地址?)。 推送:订阅成功后,物联网平台根据应用服务器订阅的数据类型,将对应的变更信息(推送的通知内容可参考流转数据)推送给指定的URL地址。如果应用服务器没有订阅该类型的数据通知,即使数据发生了变更也不会进行推送。物联网平台进行数据推送时,数据格式为JSON格式,推送协议可以采用HTTP或HTTPS协议,其中HTTPS协议为加密传输协议,需要进行安全认证,更加安全,推荐使用。 HTTP/HTTPS方式详细请参考使用HTTP/HTTPS转发。 AMQP方式 订阅:AMQP(Advanced Message Queuing Protocol)即高级队列消息协议。用户通过控制台创建订阅任务,也可以通过调用物联网平台的创建规则触发条件、创建规则动作、修改规则触发条件接口配置并激活规则,向平台获取发生变更的设备业务信息(如设备生命周期管理、设备数据上报、设备消息状态、设备状态等)和管理信息(软固件升级状态和升级结果)。订阅时必须指定具体的AMQP消息通道。 推送:订阅成功后,物联网平台根据用户订阅的数据类型,将对应的变更信息推送给指定的AMQP消息队列。如果用户没有订阅该类型的数据通知,即使数据发生了变更也不会进行推送。用户可通过AMQP的客户端与IoT平台建立链接,来接收数据。 AMQP详细请参考使用AMQP转发。 MQTT方式 订阅:用户可以通过调用物联网平台的创建规则触发条件、创建规则动作、修改规则触发条件接口配置并激活规则,向平台获取发生变更的设备业务信息(如设备生命周期管理、设备数据上报、设备消息上报、设备状态等)和管理信息(软固件升级状态和升级结果)。订阅时必须指定接收推送消息的Topic。 推送:订阅成功后,物联网平台根据用户订阅的数据类型,将对应的变更信息推送给指定的Topic。如果用户没有订阅该类型的数据通知,即使数据发生了变更也不会进行推送。用户可通过MQTT的客户端与IoT平台建立连接,来接收数据。 MQTT详细请参考使用MQTT转发。 设备间通信 订阅:物联网平台支持基于MQTT协议实现设备间的消息通信,用户可通过控制台创建规则,也可以通过调用物联网平台的创建规则触发条件、创建规则动作、修改规则触发条件接口配置并激活规则,向平台获取设备上报的消息。设备订阅只支持消息上报。 推送:订阅成功后,物联网平台会将设备上报的消息推送到指定的MQTT Topic,当设备接入平台后,可以通过订阅该Topic来接收数据,从而实现设备间的消息通信。 设备间通信详细请参考设备间通信。 数据转发方式 适用场景 优点 限制 HTTP/HTTPS订阅推送 应用作为服务端被动接收IoT云服务的消息。 - 流控限制800TPS,不建议大流量推送使用HTTP/HTTPS方式。 AMQP订阅推送 应用作为客户端,可主动拉取IoT云服务的消息,也可以通过监听被动接收 IoT云服务的消息。 能主动拉取数据 请参考连接规格。 MQTT订阅推送 应用作为客户端,可以通过订阅接收 IoT云服务的消息。 - 请参考使用限制。 设备间通信 智能家居控制场景,手机APP和智能设备之间进行消息通信。 设备联动,设备间进行数据传输与消息通信。 实现设备间通信 请参考设备间消息通信概述。 父主题: 数据转发至第三方应用
  • 购买RocketMQ 登录华为云,访问分布式消息服务RocketMQ版, 进入分布式消息服务管理控制台。 单击右上角“购买RocketMQ实例”, 按照需求选择RocketMQ规格,单击“立即购买”。 图1 购买RocketMQ 单击进入购买的RocketMQ实例,开启ACL访问控制后,单击“用户管理”添加用户,可参考创建用户。 图2 添加用户 单击左侧导航栏“topic管理”,单击“创建topic”创建RocketMQ的topic。
  • 响应示例 状态码: 200 OK { "count" : 1, "forwarding_configs" : [ { "forwarding_type" : "kafka", "kafka_config" : { "kafka_config_id" : "1234567890", "kafka_topics" : [ "v2x-v1-tracks", "v2x-v1-bsm", "v2x-v1-rsi", "v2x-v1-rsm", "v2x-v1-spat", "v2x-v1-edge-flow", "realtime-traffic", "forecast-traffic", "recommended-strategies", "executed-strategies", "strategy-evaluations", "confirmed-event", "traffic-event", "compositive-tracks", "model-data", "request-strategies" ], "brokers" : [ "127.0.0.1:10000" ], "username" : "1234567890", "topic_prefix" : "abc", "status" : "ONLINE", "model_ids" : [ "40f96952-ea2f-4a10-8a92-e641aa1c6e49" ], "created_time" : "2015-12-12T12:12:12Z", "last_modified_time" : "2015-12-13T12:12:12Z" }, "mrs_kafka_config" : { "kafka_config_id" : null, "kafka_topics" : [ "v2x-v1-tracks", "v2x-v1-bsm", "v2x-v1-rsi", "v2x-v1-rsm", "v2x-v1-spat", "v2x-v1-edge-flow", "realtime-traffic", "forecast-traffic", "recommended-strategies", "executed-strategies", "strategy-evaluations", "confirmed-event", "traffic-event", "compositive-tracks", "model-data", "request-strategies" ], "brokers" : [ "127.0.0.1:10000" ], "username" : null, "status" : null, "authentication" : false, "model_ids" : [ "40f96952-ea2f-4a10-8a92-e641aa1c6e49" ], "created_time" : "2015-12-12T12:12:12Z", "last_modified_time" : "2015-12-12T12:12:12Z" } } ] }
  • 响应参数 状态码: 200 表4 响应Body参数 参数 参数类型 描述 count Integer 参数说明:满足查询条件的记录总数。 最小值:0 最大值:10000 forwarding_configs Array of ForwardingConfig objects 参数说明:转发配置的列表。 数组长度:0 - 50 表5 ForwardingConfig 参数 参数类型 描述 forwarding_type String 参数说明:转发配置的类型。 取值范围:当前仅支持“kafka、mrskafka”。 kafka_config KafkaConfigResponseDTO object 参数说明:Kafka配置信息。 mrs_kafka_config MrsKafkaConfigResponseDTO object 参数说明:mrsKafka配置信息。 表6 KafkaConfigResponseDTO 参数 参数类型 描述 kafka_config_id String 参数说明:每一套Kafka配置的唯一ID。 取值范围:只允许字母、数字、下划线(_)、连接符(-)的组合。 最小长度:1 最大长度:255 kafka_topics Array of strings 参数说明:kafka的主题列表。 取值范围: v2x-v1-tracks:edge上报的车辆轨迹数据 v2x-v1-bsm:车载T-BOX,RSU上报的BSM消息数据 v2x-v1-rsi:RSU,edge上报的RSI消息数据 v2x-v1-rsm: RSU,edge上报的RSM消息数据 v2x-v1-spat:RSU上报的SPAT消息数据 v2x-v1-edge-flow:edge上报的车流量统计信息数据 数组长度:0 - 7 brokers Array of strings 参数说明:Kafka broker列表。 最小长度:1 最大长度:255 数组长度:1 - 255 username String 参数说明:kafka用户名。 取值范围:只允许字母、数字、下划线(_)、连接符(-)的组合。 最小长度:1 最大长度:255 topic_prefix String 参数说明:Topic前缀。 取值范围:长度不超过255,只允许字母、数字、下划线(_)、连接符(-)的组合。 status String 参数说明:一套kafka的连接状态。 取值范围: OFFLINE:离线 ONLINE:在线 枚举值: OFFLINE ONLINE cert_info CertificateInfo object model_ids Array of strings 参数说明:模型ID列表。 user_topics包含model-data时必选,仅支持非系统、分层为gdm的动态模型。 可通过 GET /{project_id}/models 查询模型列表接口获取。 取值范围:仅支持字母,数字以及中划线(-)的组合,长度为36。 数组长度:1 - 10 created_time String 参数说明:创建时间。 格式为yyyy-MM-dd'T'HH:mm:ss'Z' 例如:2015-12-12T12:12:12Z last_modified_time String 参数说明:修改时间。 格式为yyyy-MM-dd'T'HH:mm:ss'Z' 例如:2015-12-12T12:12:12Z 表7 CertificateInfo 参数 参数类型 描述 effective_date String 证书生效日期 expiry_date String 证书失效日期 表8 MrsKafkaConfigResponseDTO 参数 参数类型 描述 kafka_config_id String 参数说明:每一套Kafka配置的唯一ID。 取值范围:只允许字母、数字、下划线(_)、连接符(-)的组合。 最小长度:1 最大长度:255 kafka_topics Array of strings 参数说明:kafka的主题列表。 取值范围: v2x-v1-tracks:edge上报的车辆轨迹数据 v2x-v1-bsm:车载T-BOX,RSU上报的BSM消息数据 v2x-v1-rsi:RSU,edge上报的RSI消息数据 v2x-v1-rsm: RSU,edge上报的RSM消息数据 v2x-v1-spat:RSU上报的SPAT消息数据 v2x-v1-edge-flow:edge上报的车流量统计信息数据 数组长度:0 - 7 brokers Array of strings 参数说明:Kafka broker列表。 最小长度:1 最大长度:255 数组长度:1 - 255 username String 参数说明:mrskafka用户名,若开启安全认证该参数必填。 取值范围:只允许字母、数字、下划线(_)、连接符(-)的组合。 最小长度:0 最大长度:255 status String 参数说明:一套kafka的连接状态。 取值范围: OFFLINE:离线 ONLINE:在线 枚举值: OFFLINE ONLINE authentication Boolean 参数说明:是否开启kerberos安全认证的开关。若开启安全认证则需要先上传kerberos安全认证的凭证。 缺省值:false model_ids Array of strings 参数说明:模型ID列表。 user_topics包含model-data时必选,仅支持非系统、分层为gdm的动态模型。 可通过 GET /{project_id}/models 查询模型列表接口获取。 取值范围:仅支持字母,数字以及中划线(-)的组合,长度为36。 数组长度:1 - 10 created_time String 参数说明:创建时间。 格式为yyyy-MM-dd'T'HH:mm:ss'Z' 例如:2015-12-12T12:12:12Z last_modified_time String 参数说明:修改时间。 格式为yyyy-MM-dd'T'HH:mm:ss'Z' 例如:2015-12-12T12:12:12Z
  • 数据上报及验证数据是否转发成功 使用MQTT模拟器连接到平台(模拟器使用请参考:使用MQTT.fx调测)。 使用模拟器进行属性上报(参考:设备属性上报)。 上报内容如下: { "services": [{ "service_id": "order", "properties": { "orderID": "0000001", "area": "南山区", "orderTime": "20220815T121215Z", "goods": "商品01", "amount": 30.5 }, "event_time": "20220815T121215Z" } ] } 前往OBS控制台,查看转发目标设置的文件是否生成。 图7 查看OBS桶内文件
  • 创建产品和设备 访问设备接入服务,单击“立即使用”进入设备接入控制台。 选择左侧导航栏的“产品”,单击右上角下拉框,选择新建产品所属的资源空间。 单击左侧的“创建产品”,创建一个基于MQTT协议的产品,填写参数后,单击“确认”。 图3 创建产品-MQTT 为上一步创建的产品导入产品模型,请参考导入产品模型。 选择第3步创建的产品,在该产品下注册设备、请参考注册单个设备。 本文中使用的产品模型和设备仅为示例,您可以使用自己的产品模型和设备进行操作。
  • 模拟数据上报及结果验证 使用MQTT模拟器连接到平台(模拟器使用请参考:使用MQTT.fx调测)。 使用模拟器进行属性上报(参考:设备属性上报)。 上报内容如下: { "services": [{ "service_id": "order", "properties": { "orderID": "0000002", "area": "罗湖区", "orderTime": "20220815T121215Z", "goods": "商品02", "amount": 30.5 }, "event_time": "20220815T121215Z" } ] } 打开 数据可视化 服务查看数据是否刷新。 图15 结果查看
  • 场景说明 物联网解决方案中,作为数据主体的“物”可能数量会非常大,产生的数据已经无法通过传统的数据处理服务进行处理。如何分析与利用这庞大的物联网设备数据对物联网企业来说又是一个新的挑战。 华为云物联网平台提供规则引擎能力,支持将设备上报的数据转发至华为云其他云服务,可实现将海量数据通过 对象存储服务 (OBS)存储,再由数据可视化服务( DLV )读取数据呈现为可视化报表,实现数据的一站式采集、处理和分析。 图1 场景说明 在本示例中,我们实现下述场景: 设备上报数据到物联网平台,物联网平台将数据以CSV格式存储到对象存储服务(OBS),数据可视化服务(DLV)从OBS文件读取数据并展现为多个维度的报表。
  • 场景说明 物联网平台为用户提供了丰富的报表功能,能够将数据直观地呈现出来,当您想将报表中的数据集成到自己的运维系统时,可以使用 AOM 的订阅功能将IoTDA推送的指标数据推送至DMS Kafka,您可以消费DMS Kafka中的指标数据展示在您自己的运维系统中。本示例为使用AOM订阅功能将指标数据推送至DMS Kafka,并以在线设备数指标为例展示。IoTDA支持的指标数据可参考IoTDA指标详情。