云服务器内容精选

  • 购买GeminiDB Influx 登录云数据库GeminiDB Influx,单击“立即购买”。 根据需求选择按需计费或者包年包月以及性能规格、存储空间等,兼容接口选择InfluxDB。具体可参考购买集群实例。 图1 购买influxDB实例 下载InfluxDB客户端,通过客户端连接实例,参考公网连接实例。 使用客户端连接实例后,通过以下命令创建数据库,${databaseName}可以自定义。 create database ${databaseName} 图2 创建数据库
  • 场景说明 将数据流转到influxDB,兼容InfluxDB生态的云原生 时序数据库 。提供高性能读写、高压缩率、冷热分层存储以及弹性扩容、监控告警等服务能力,可以实现大并发的时序数据读写,压缩存储和类SQL查询等功能,支持多维聚合计算和 数据可视化 分析能力。广泛应用于资源监控、业务监控分析、物联网设备实时监控、工业生产监控、生产质量评估和故障回溯等。提供了高吞吐量和并发性,可以通过快速的响应时间来支持大量的连接,非常适合要求苛刻的物联网应用。
  • 概述 订阅推送的示意图如下图所示: 物联网平台 采用HTTPS协议向应用服务器进行消息推送时,物联网平台需要校验应用服务器的真实性,需要在物联网平台上加载CA证书,该证书由应用服务器侧提供(调测时可自行制作调测证书,商用时建议更换为商用证书,否则会带来安全风险)。 推送机制:物联网平台向应用服务器推送消息后,如果应用服务器接收消息成功,会向物联网平台返回200 OK响应码。如果应用服务器无响应(或响应时间超过15秒),或者应用服务器向物联网平台返回非200响应码(如500、501、502、503、504等),表示消息推送失败,消息推送失败后该消息将被丢弃。推送失败连续累计达到10次,物联网平台会将该订阅URL的主机地址加入黑名单,在黑名单期间消息将会积压在平台(默认积压最近24小时或1GB数据,若只想保留最新数据可参考数据转发积压策略配置进行配置)。此后每3分钟尝试对黑名单中的订阅URL主机地址进行消息推送,如果推送失败,则继续保持黑名单;如果推送成功,则解除黑名单。解除黑名单后消息将会以最大流控值推送完积压的消息后才会正常推送最新消息(默认流控为800TPS,自定义配置参考数据转发流控策略配置)。
  • 制作调测证书 调测证书,又叫做自签名证书,用于客户端通过HTTPS访问服务端时进行安全认证。在物联网平台的使用中,可用于物联网平台向应用服务器采用HTTPS协议推送数据时,物联网平台认证应用服务器的合法性。本文以Windows环境为例,介绍通过Openssl工具制作调测证书的方法,生成的证书为PEM编码格式的证书,后缀为.cer。 常见的证书存储格式如下表所示。 存储格式 说明 DER 二进制编码,后缀名.der/.cer/.crt PEM BASE 64编码,后缀名.pem/.cer/.crt JKS Java的证书存储格式,后缀名.jks 自签名证书仅用于调测阶段,在商用时,您需要向知名CA机构申请证书,否则可能会带来安全风险。 在浏览器中访问这里,下载并安装OpenSSL工具。 以管理员身份运行cmd命令行窗口。 执行cd c:\openssl\bin(请替换为openssl实际安装路径),进入openssl命令视图。 执行如下命令生成CA根证书私钥文件ca_private.key。 openssl genrsa -passout pass:123456 -aes256 -out ca_private.key 2048 aes256:代表加密算法。 passout pass:代表私钥密码。 2048:代表密钥长度。 执行如下命令使用CA根证书私钥文件生成csr文件ca.csr,用于6生成CA根证书。 openssl req -passin pass:123456 -new -key ca_private.key -out ca.csr -subj "/C=CN/ST=GD/L=SZ/O=Huawei/OU=IoT/CN=CA" 如下信息您可以根据实际情况进行修改。 C:代表国家,填写CN。 ST:地区,如GD。 L:城市,如SZ。 O:组织,如Huawei。 OU:组织单位,如IoT。 CN:Common Name,填写为CA的组织名,如CA。 执行如下命令生成CA根证书ca.cer。 openssl x509 -req -passin pass:123456 -in ca.csr -out ca.cer -signkey ca_private.key -CAcreateserial -days 3650 如下信息您可以根据实际情况进行修改。 passin pass:必须与4中设置的私钥密码保持一致。 days:代表证书有效期。 执行如下命令生成应用服务器端私钥文件。 openssl genrsa -passout pass:123456 -aes256 -out server_private.key 2048 执行如下命令生成应用服务器端csr文件,用于生成服务端证书。 openssl req -passin pass:123456 -new -key server_private.key -out server.csr -subj "/C=CN/ST=GD/L=SZ/O=Huawei/OU=IoT/CN=appserver.iot.com" 如下信息您可以根据实际情况进行修改。 C:代表国家,填写CN。 ST:地区,如GD。 L:城市,如SZ。 O:组织,如Huawei。 OU:组织单位,如IoT。 CN:Common Name,一般填写为应用服务器的 域名 或IP。 通过CA私钥文件ca_private.key对服务端csr文件server.csr进行签名,生成服务端证书文件server.cer。 openssl x509 -req -passin pass:123456 -in server.csr -out server.cer -sha256 -CA ca.cer -CAkey ca_private.key -CAserial ca.srl -CAcreateserial -days 3650 (可选)如果您需要.crt/.pem后缀的证书,可以根据如下命令进行转换。下面将以server.cer转为为server.crt为例进行说明,需要转换ca.cer证书时,请将命令中的server替换为ca。 openssl x509 -inform PEM -in server.cer -out server.crt 在openssl安装目录的bin文件夹下,获取生成的CA证书(ca.cer/ca.crt/ca.pem)、应用服务器证书(server.cer/server.crt/server.pem)和私钥文件(server_private.key)。其中CA证书用于加载到物联网平台,应用服务器证书和私钥文件用于加载到应用服务器。
  • 模拟数据上报及结果验证 使用MQTT模拟器连接到平台(模拟器使用请参考:使用MQTT.fx调测)。 使用模拟器进行消息上报,详情请参考:设备消息上报。 上报内容如下: { "age": "34", "profession": "blue-collar", "maritalStatus": "single", "educationalStatus": "tertiary", "realEstateSituation": "no", "loanStatus": "tertiary" } 查看HTTP服务器是否收到预测结果。 图17 查看消息
  • 概述 在物联网解决方案中,针对庞大的数据进行自动学习时,需要对海量数据进行标注、训练,按照传统的方式进行标注、训练不仅耗时耗力,而且对资源消耗也非常巨大。华为云物联网平台可以通过规则引擎,将获取的海量数据流转到华为云其他云服务,从而实现将海量数据通过 函数工作流 (FunctionGraph)进行预处理,再将清洗后的数据流入 AI开发平台 (ModelArts)进行AI分析,并将分析结果统一转发至HTTP服务器中。
  • 前提条件 已注册华为官方账号。未注册可参考注册华为账户完成注册。 已完成实名制认证。未完成可在华为云上单击实名认证完成认证,否则会影响后续云服务的开通。 已开通 设备接入服务 。未开通则访问设备接入服务,单击“免费试用”或单击“价格计算器”购买并开通该服务。 已开通FunctionGraph服务。未开通则访问FunctionGraph服务,单击“立即使用”后开通该服务。 已开通ModelArts服务。未开通则访问AI开发平台,单击“控制台”后进入该服务。 自建一个HTTP服务器,并提供POST接口用来接收推送的数据(本示例默认已经提供好相应的服务器与接口,不再展示如何搭建HTTP服务器指导)。
  • 示例场景 在本示例中,我们实现以下场景: 设备上报银行客户特征信息,物联网平台将数据转发至FunctionGraph,由FunctionGraph转发至ModelArts进行AI分析,最终将分析的结果转发至HTTP服务器中。 操作步骤如下: 创建并发布ModelArts模型。 配置FunctionGraph函数。 创建MQTT协议产品,并创建设备。 数据转发规则配置,将数据流转至FunctionGraph。 模拟数据上报及结果验证,查看HTTP服务器是否收到AI分析后的消息。 图1 场景说明
  • 购买RocketMQ 登录华为云,访问分布式消息服务RocketMQ版, 进入分布式消息服务管理控制台。 单击右上角“购买RocketMQ实例”,按照需求选择RocketMQ规格,单击“立即购买”。 图1 购买RocketMQ 单击进入购买的RocketMQ实例,开启ACL访问控制后,单击“用户管理”添加用户,可参考创建用户。 图2 添加用户 单击左侧导航栏“topic管理”,单击“创建topic”创建RocketMQ的topic。
  • 前提条件 已注册华为官方账号。未注册可参考注册华为账户注册华为账户完成注册。 已完成实名制认证。未完成可在华为云上单击实名认证完成认证,否则会影响后续云服务的开通。 已开通设备接入服务。未开通则访问设备接入服务,单击“免费试用”或单击“价格计算器”购买并开通该服务。 已开通 AOM 服务。访问AOM服务,单击“AOM2.0控制台”,单击“免费开通服务并授权”开通该服务。 已开通DMS Kafka服务。未开通则访问DMS Kafka服务,单击“立即购买”后开通该服务。
  • 响应示例 状态码: 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", "junction-realtime-traffic", "forecast-traffic", "recommended-strategies", "executed-strategies", "strategy-evaluations", "confirmed-event", "traffic-event", "compositive-tracks", "model-data", "request-strategies", "congestion-event", "congestion-prediction-event" ], "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", "junction-realtime-traffic", "forecast-traffic", "recommended-strategies", "executed-strategies", "strategy-evaluations", "confirmed-event", "traffic-event", "compositive-tracks", "model-data", "request-strategies", "congestion-event", "congestion-prediction-event" ], "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
  • 转发方式概述 设备接入到物联网平台后,便可与物联网平台进行通信。设备通过自定义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和智能设备之间进行消息通信。 设备联动,设备间进行数据传输与消息通信。 实现设备间通信 请参考设备间消息通信概述。 父主题: 数据转发至第三方应用
  • 前提条件 已注册华为官方账号。未注册可参考注册华为账户注册华为账户完成注册。 已完成实名制认证。未完成可在华为云上单击实名认证完成认证,否则会影响后续云服务的开通。 已开通设备接入服务。未开通则访问设备接入服务,单击“免费试用”或单击“价格计算器”购买并开通该服务。 已开通AOM服务。访问AOM服务,单击“AOM2.0控制台”,单击“免费开通服务并授权”开通该服务。 已开通DMS Kafka服务。未开通则访问DMS Kafka服务,单击“立即购买”后开通该服务。
  • Message示例 { "header" : { "instance_id" : "f24b3b95-4a2a-4f6f-a80c-855156b50af7", "event" : "ADDED" }, "body" : { "source" : { "source_type" : "detection", "source_id" : "EDGE0123456789", "esn" : "2102312ETX10K7000037" }, "time" : "2020-09-01T01:37:01.123Z", "cross_id" : "cross0123456789", "track_list" : [ { "track_id" : 50, "ptc_type" : "motor", "ptc_id" : 3, "source" : "rsu", "global_track_id" : 3, "vehicle_class" : 10, "vehicle_color" : "black", "vehicle_model" : "朗逸", "vehicle_brand" : "红旗", "vehicle_style" : "2018,2019,2020", "gat_vehicle_class" : "K33", "plat_no" : "浙A12345", "heading" : 158.23, "speed" : 10.2, "car_direction" : 1, "fuel_type" : 5, "camera_list" : [ { "id" : 0, "ip" : "127.0.0.1" } ], "size" : { "width" : 200, "length" : 400, "height" : 200 }, "location_list" : [ { "lon" : 123.123, "lat" : 11.123, "speed" : 10.2, "accel_set" : { "long_accel" : 3, "lat_accel" : 4, "vert_accel" : 0, "yaw_rate" : 0 }, "heading" : 158.23, "angle" : 0, "car_direction" : 1, "time_stamp" : 1626243657123 } ] } ] } }