云服务器内容精选

  • 成本分配 成本管理的基础是树立成本责任制,让各部门、各业务团队、各责任人参与进来,为各自消耗云服务产生的成本负责。企业可以通过成本分配的方式,将云上成本分组,归集到特定的团队或项目业务中,让各责任组织及时了解各自的成本情况。 华为云成本中心支持通过多种不同的方式对成本进行归集和重新分配,您可以根据需要选择合适的分配工具。 通过关联账号进行成本分配 企业主客户可以使用关联账号对子客户的成本进行归集,从而对子账号进行财务管理。详细介绍请参见通过关联账号维度查看成本分配。 通过成本标签进行成本分配 标签是华为云为了标识云资源,按各种维度(例如用途、所有者或环境)对云资源进行分类的标记。推荐企业使用预定义标签进行成本归集,具体流程如下: 图1 为云资源添加标签 详细介绍请参见通过成本标签维度查看成本分配。 使用成本单元进行成本分配 企业可以使用成本中心的“成本单元”来拆分公共成本。公共成本是指多个部门共享的计算、网络、存储或资源包产生的云成本,或无法直接通过企业项目、成本标签分配的云成本。这些成本不能直接归属于单一所有者,因此不能直接归属到某一类别。使用拆分规则,可以在各团队或业务部门之间公平地分配这些成本。详细介绍请参见使用成本单元查看成本分配。
  • 成本优化 企业可以在成本中心的“预算管理”页面创建精细粒度的预算来管理成本和使用量,在实际或预测超过预算阈值时,自动发送通知给指定消息接收人。企业还可以创建预算报告,定期将指定预算进展通知给指定消息接收人。 例如企业需要创建一个弹性云服务器的按需成本预算,每月预算金额为2000元,当预测金额高于预算金额的80%时发送预算告警。那么,创建的预算如下: 图2 新建预算 详细介绍请参见使用预测和预算来跟踪成本和使用量。
  • 相关推荐 相关文档 相关产品 设备数据上报 使用HTTP/HTTPS转发 使用AMQP转发 查看运行日志(旧版) 消息通知 服务 SMN 数据接入服务 DIS 分布式消息服务Kafka 对象存储服务 OBS 应用与 数据集成平台 ROMA Connect 云日志 服务(LTS) 函数工作流 FunctionGraph 分布式消息服务(RocketMQ) 云数据库 GeminiDB Influx MapReduce服务 MRS Kafka) 云数据库MySQL 区块链 服务 BCS
  • 概述 数据转发功能用于提供IoTDA与其他第三方以及华为云服务的连接通道,从而实现将设备数据平滑流转至消息中间件、存储、数据分析、业务应用。各转发方式在各规格的支持情况,详见产品规格说明中 基础版、标准版与企业版实例功能差异。当前 物联网平台 支持如下转发方式: 表1 数据转发概述 分类 转发目标 说明 操作指导 第三方服务 第三方应用服务(HTTP推送) 将数据转发至客户的HTTP服务器,客户可以在数据转发界面创建流转规则,并指定推送的URL,将订阅的数据源信息推送到指定URL的服务器。 使用限制:支持基础版、标准版、企业版。 使用HTTP/HTTPS转发 AMQP推送消息队列 客户可以通过数据转发界面,订阅指定的AMQP通道,将订阅的数据源信息推送到指定AMQP通道,用户可通过AMQP的客户端与IoT平台建立链接,接收数据。 使用限制:支持基础版、标准版、企业版。 使用AMQP转发 MQTT推送消息队列 客户可以通过数据转发界面,订阅指定的MQTT Topic,将订阅的数据源信息推送到指定MQTT Topic,用户可通过Mqtt的客户端与IoT平台建立链接,接收数据。 使用限制:支持标准版、企业版。 使用MQTT转发 设备间通信 物联网平台支持基于MQTT协议实现设备间的消息通信,客户可以通过数据转发界面,订阅指定的Topic,平台会将设备上报的消息推送到指定的Topic,其他设备可以通过订阅该Topic来接收不同设备的消息。 使用限制:支持标准版、企业版。仅支持消息上报。 设备间通信 数据分析 数据接入服务 DIS 将数据流转到华为云DIS云服务。目前DIS支持数据转存储至对象存储服务 OBS、MapReduce服务 MRS、 数据湖探索 DLI 数据仓库服务 DWS 表格存储服务 CloudTable 。具体DIS支持的转存储任务以实际购买的实例为准。 应用场景:数据接入服务主要解决云服务外的数据实时传输到云服务内的问题。 规格参考:通道规格理论1个分区1M/秒接入,2M/秒读取。 使用限制:支持基础版、标准版、企业版。 数据转发至DIS 分布式消息服务Kafka版 将数据流转到华为云DMS Kafka云服务,适用于构建实时数据管道、流式数据处理、第三方解耦、流量削峰去谷等场景,具有大规模、高可靠、高并发访问、可扩展且完全托管的特点。 应用场景:在日志收集、流式数据传输、在线/离线系统分析、实时监控等领域有广泛的应用。 规格参考:Kafka实例规格。 使用限制:支持基础版、标准版、企业版。 数据转发至Kafka存储 应用与数据集成平台ROMAConnect 将数据流转到华为云ROMA Connect,可以实现无缝联接应用、消息、数据、API、设备,帮助企业快速、简单的打通并管理遗留系统与云原生应用,ROMA Connect是一个全栈式的应用与数据集成平台,源自华为数字化转型集成实践,聚焦应用和数据连接,适配多种企业常见的使用场景。 规格参考:ROMA实例规格。 使用限制:支持企业版。 - 分布式消息服务RocketMQ版 将数据流转到华为云RocketMQ云服务,兼容开源RocketMQ客户端。提供顺序、延迟、定时、重投、死信、事务消息等功能。提供消息追踪、消息溯源、链路诊断、死信导出、监控告警等能力,帮助您全方面的了解服务状况,保证业务正常运行。 应用场景:适用于电商、金融等多样的业务场景。 规格参考:RocketMQ实例规格。 使用限制:支持标准版、企业版。 数据转发至RokcetMQ 云日志服务 LTS 将数据流转到华为云LTS云服务,实现一站式日志采集、秒级搜索、海量存储、结构化处理、转储和可视化图表等功能。 应用场景:适用于应用运维、网络日志可视化分析、等保合规和运营分析等应用场景。 规格参考:日志流规格。 使用限制:支持基础版、标准版、企业版。 查看运行日志 函数工作流 FunctionGraph 将数据流转到华为云FunctionGraph云服务,客户只需要在FunctionGraph中编写业务函数代码并设置运行的条件,无需配置和管理服务器等基础设施,函数以弹性、免运维、高可靠的方式运行。此外,按函数实际执行资源计费,不执行不产生费用。 使用限制:支持标准版、企业版。 数据转发转发至FunctionGraph函数工作流 MapReduce服务 MRS 将数据转发到华为云MRS Kafka云服务,它的Kafka集群是一个分布式的、分区的、多副本的消息发布-订阅系统,它提供了类似于JMS的特性,但在设计上完全不同,它具有消息持久化、高吞吐、分布式、多客户端支持、实时等特性,适用于离线和在线的消息消费,如常规的消息收集、网站活性跟踪、聚合统计系统运营数据(监控数据)、日志收集等大量数据的互联网服务的数据收集场景。 使用限制:支持企业版。 - 区块链服务 B CS 将数据转发到华为云BCS云服务,作为面向企业及开发者提供的区块链技术服务平台,可以帮助客户快速部署、管理、维护区块链网络,降低客户使用区块链的门槛,让客户可以更专注于自身业务的开发与创新,实现业务快速上链。 规格参考:BCS产品规格。 使用限制:支持企业版。 数据转发至BCS可信上链 数据存储 云数据库 GeminiDB Influx 将数据流转到华为云GeminiDB Influx,兼容InfluxDB生态的云原生 时序数据库 。提供高性能读写、高压缩率、冷热分层存储以及弹性扩容、监控告警等服务能力,可以实现大并发的时序数据读写,压缩存储和类SQL查询等功能,支持多维聚合计算和 数据可视化 分析能力。 应用场景:广泛应用于资源监控、业务监控分析、物联网设备实时监控、工业生产监控、生产质量评估和故障回溯等。提供了高吞吐量和并发性,可以通过快速的响应时间来支持大量的连接,非常适合要求苛刻的物联网应用。 规格参考:InfluxDB规格。 使用限制:支持标准版、企业版。 数据转发至GeminiDB Influx 云数据库 RDS for MySQL 将数据流转到华为云RDS MySQL,相比自建数据库,RDS价格便宜、 即开即用,便捷运维,支持弹性伸缩并具备实例管理、实例监控、备份恢复、日志管理、参数管理等功能,支持单机和主备部署。 应用场景:网站业务、移动应用、游戏业务、电商业务、金融业务以及企业应用等。 规格参考:Mysql性能规格。 使用限制:支持标准版、企业版。 数据转发至MySQL 对象存储服务 OBS 将数据流转至华为云OBS云服务,OBS为客户提供海量、安全、高可靠、低成本的数据存储能力,使用时无需考虑容量限制,并且提供多种存储类型供选择,满足客户各类业务场景诉求,OBS也支持对接实时计算CS云服务,实时分析数据流,分析结果对接到其他云服务或者第三方应用进行数据可视化等。 应用场景:适用于海量大数据存储分析的场景。 规格参考:OBS存储规格。 使用限制:支持基础版、标准版、企业版。 数据转发至OBS长期存储 文档数据库服务DDS功能 将数据流转至华为云文档数据库服务DDS,DDS完全兼容MongoDB协议,具备安全审计,多账号管理,时间点备份恢复能力,支持集群和副本集部署架构。10倍备份恢复能力,分钟级横向扩容,轻松承载海量数据的高并发写入。 应用场景:游戏业务,物联网业务,电商、考勤系统等有典型高并发场景,对数据库性能要求较高。 规格参考:DDS性能规格 使用限制:支持企业版。 数据转发至MongoDB存储 通过公网进行数据转发流量限制不超过1M/s,超过后消息会直接丢弃。如果要使用更大的流量进行数据转发,推荐使用企业版,企业版支持私网进行数据转发,无此限制。
  • 在产品详情中上传产品模型,无法单击确定按钮? 问题描述 用户在产品详情页面中上传了产品模型,无法单击确定按钮。 图1 产品-上传模型文件 可能原因 上传的产品模型文件命名不符合规范。 上传的产品模型的压缩文件不是zip格式的。 解决方法 检查产品模型文件的名称是否符合deviceType_manufacturerId_model.zip的格式,并检查“deviceType”、“manufacturerId”、“model”三个字段是否和devicetype-capability.json中的定义一致。 检查产品模型文件是否压缩为zip格式。如非zip格式,请解压后重新压缩、上传。
  • 在线开发产品模型时,如何选择数据类型? 数据类型的配置可以参考如下原则: int:当上报的数据为整数或布尔值时,可以匹配为此类型。插件开发中可匹配int型或array类型。 decimal:当上报的数据为小数时,可以匹配为此类型。插件开发中可匹配string或者int或者array类型。 string:当上报的数据为字符串、枚举值或布尔值时,可以配置为此类型。如果为枚举值或布尔值,值之间需要用英文逗号(“,”)分隔。插件开发中可匹配string类型或者array类型。 dateTime:当上报的数据为日期时,可以配置为此类型。插件开发中可匹配string类型或者array类型。 jsonObject:当上报的数据为json结构体时,可以配置为此类型。插件开发者可匹配string或者array类型。
  • 在产品详情上传产品模型,弹窗提示“文件输入格式有误”? 问题描述 客户在产品详情界面里,上传产品模型文件,提示“文件输入格式有误”。 可能原因 模型的json文件格式错误。 servicetype-capability.json中commands/properties的值不是数组格式。 压缩包中存在其他的文件。 解决方法 检查每个json文件的格式是否正确,可以使用第三方格式校验工具进行检查。 检查servicetype-capability.json中commands/properties的值是否为数组格式(值是否包含在中括号之内)。 检查产品模型的压缩包是否存在其他文件或者隐藏文件,如果存在其他文件或者隐藏文件,则删除后重新上传。
  • 应用服务器调用接口失败怎么处理? 请检查应用服务器的网络连接情况,确保应用服务器网络正常。 检查请求中物联网平台的应用接入地址和端口是否正确。 使用“ping {物联网平台应用接入地址}”命令,查看应用服务器是否可以正常访问物联网平台的应用接入地址。 使用“telnet {物联网平台应用接入地址} {端口}”命令,查看是否可以打开物联网平台的应用接入端口。 检查应用服务器是否集成了物联网平台的证书,证书可从开发资源获取页面下载。 根据接口文档,查看各个参数的填写是否正确。 使用V3接口情况下,调用”鉴权”接口返回的accessToken有效期是一个小时,过期后,调用其他接口也会失败。请调用“鉴权“接口获取新的accessToken后,重新调用其他接口。 使用V5接口情况下,调用“认证鉴权”接口返回的X-Auth-Token有效期未24小时,过期后,调用其他接口也会失败。请调用”认证鉴权”获取新的X-Auth-Token后,重新调用其他接口即可。 如果以上问题均已排除,请根据接口返回的错误码进行处理,错误码的含义可参见错误码列表。如果应用封装了错误码,可以使用postman调用相同的接口,获取设备接入返回的原始错误码及描述,再按照对应错误码的处理建议进行处理。 例如调用创建设备接口提示“nodeId重复”,则需要查看在自己的账号下是否已经存在相同nodeId的设备。如果在自己的账号下未找到使用相同nodeId的设备,请提交工单联系技术专家,由支撑人员检查该nodeId在设备接入的使用情况。
  • 应用集成IoTDA应用侧SDK报错Missing request header 'X-Auth-Token' for method parameter of type String 问题描述 应用集成了IoTDA的应用侧SDK,使用AKSK进行认证鉴权,但是接口返回400状态码,错误描述是Missing request header 'X-Auth-Token' for method parameter of type String。 可能原因 AKSK签名算法与对应集群支持的签名算法不匹配导致 解决方法 访问IoTDA北京四基础版接入地址时,使用的是通用的AKSK签名算法。 访问IoTDA标准版或者企业版的接入地址时,使用的是衍生的AKSK签名算法,需要明确指定使用衍生算法,详情可参考集成应用侧SDK的注释说明。
  • 查询、修改、删除设备影子 查询设备影子 方法1:应用服务器调用查询设备影子数据接口。 方法2:登录管理控制台,选择您的实例,单击实例卡片进入。在左侧导航栏选择“设备”,单击具体的设备进入到设备的详情页面,在“设备影子”页签中,可以查看当前设备属性数据,包括“上报值”和“期望值”。 如果当前界面中看到“上报值”与“期望值”不一致,原因可能是设备未在线,暂时存储在设备影子中,待同步给设备,期望值会存在深色底纹。 如果当前界面看到的“上报值”与“期望值”一致,则表示设备最近一次上报的属性值与用户期望下发的属性值一致,期望值为白色底纹。 图1 设备影子-查看 修改设备影子 方法1:应用服务器调用配置设备影子预期数据接口。 方法2:登录管理控制台,选择您的实例,单击实例卡片进入。在左侧导航栏选择“设备-所有设备”,在设备列表中单击具体的设备进入到设备的详情页面,在“设备影子”页面,单击“属性配置”,在弹出窗口中输入服务属性对应的期望值,单击"确定"完成设备影子的修改。 图2 设备影子-属性配置 删除设备影子 用户删除设备影子,平台将会将设备影子中的所有数据(包含上报值和期望值)清空。 图3 删除设备影子
  • 业务流程 修改设备属性值 修改desired区属性值,如果设备在线,则设备影子直接同步设备属性值到设备,否则等待设备上线或上报数据时,再同步设备属性值到设备。 用户通过控制台或应用服务器修改设备属性值。消息样例如下: PUT https://{Endpoint}/v5/iot/{project_id}/devices/{device_id}/shadow Content-Type: application/json X-Auth-Token: ******** Instance-Id: ******** { "shadow" : [ { "desired" : { "temperature" : "60" }, "service_id" : "WaterMeter", "version" : 1 } ] } 物联网平台修改desired区属性值。 物联网平台返回响应消息。 物联网平台判断设备上线或上报数据。 物联网平台将设备属性同步到设备。消息样例如下: Topic: $oc/devices/{device_id}/sys/properties/set/request_id={request_id} 数据格式: { "object_device_id": "{object_device_id} ", "services": [ { "service_id": "Temperature", "properties": { "value": 57, "value2": 60 } }, { "service_id": "Battery", "properties": { "level": 80, "level2": 90 } } ] } 设备返回响应消息。设备影子desired区的属性值发送给设备后,需要设备回响应表示已收到请求。消息样例如下: Topic:$oc/devices/{device_id}/sys/properties/set/response/request_id={request_id} 数据格式: { "result_code": 0, "result_desc": "success" } 7.设备上报数据,当设备进行属性上报时,平台会存储设备最新上报的设备属性值。 设备上报属性时,物联网平台修改设备影子reported区属性值为设备上报的设备属性值。消息样例如下: Topic: $oc/devices/{device_id}/sys/properties/report 数据格式: { "services": [ { "service_id": "Temperature", "properties": { "value": 57, "value2": 60 }, "event_time": "20151212T121212Z" }, { "service_id": "Battery", "properties": { "level": 80, "level2": 90 }, "event_time": "20151212T121212Z" } ] } 设备主动删除设备影子的reported区 设备主动删除reported区service下的单个属性 设备上报属性时,将属性设置为null,平台会将该属性从设备影子reported区删除,消息样例如下: Topic: $oc/devices/{device_id}/sys/properties/report { "services": [ { "service_id": "Temperature", "properties": { "value": null, "value2": 60 }, "event_time": "20151212T121212Z" } ] } 设备主动删除影子reported区的service下的全部的属性 设备上报属性时,将service对应的properties设置为{}时,平台会将reported区该service模块下所有属性从设备影子reported区删除,消息样例如下: Topic: $oc/devices/{device_id}/sys/properties/report { "services": [ { "service_id": "Temperature", "properties": {}, "event_time": "20151212T121212Z" } ] } 查询设备属性值 设备影子保存的是设备最新的设备属性值,一旦设备属性值产生变化,设备会将设备属性值同步到设备影子。用户便可以及时获取查询结果,无需关注设备是否在线。 用户通过控制台或应用服务器查询设备属性值。消息样例如下: GET https://{Endpoint}/v5/iot/{project_id}/devices/{device_id}/shadow Content-Type: application/json X-Auth-Token: ******** Instance-Id: ******** 物联网平台返回desired属性值和report属性值,即期望值和上报值。消息样例如下: Status Code: 200 OK Content-Type: application/json { "device_id" : "********", "shadow" : [ { "desired" : { "properties" : { "temperature" : "60" }, "event_time" : "20151212T121212Z" }, "service_id" : "WaterMeter", "reported" : { "properties" : { "temperature" : "60" }, "event_time" : "20151212T121212Z" }, "version" : 1 } ] }
  • 动态群组场景示例 通过设备名称模糊匹配规则(其他条件可以根据实际场景选择)创建动态群组,选择该动态群组执行OTA升级任务。 动态群组中的设备会动态根据设备名称匹配情况进行调整,并且该动态群组关联的OTA升级任务详情状态也会随之动态变化。 具体参考批量设备固件升级和动态群组的相关步骤进行操作。 创建动态群组,群组名称为“HuaweiDeviceGroup”,群组规则为 “device_name like 'HuaweiDevice%'”。 图6 动态群组-详情 创建设备固件升级任务,选择动态群组“HuaweiDeviceGroup”,完成任务创建。 图7 新建固件升级任务-动态群组 创建成功后可以查看动态群组中的设备已加入到该升级任务中。 图8 固件升级任务-详情(动态群组) 参考注册单个设备注册设备,设备名称为“HuaweiDevice011”。注册成功后可以查看该设备已自动加入“HuaweiDeviceGroup”动态群组中。 图9 动态群组-添加设备 查看软固件升级任务子任务详情,可以看到此设备已自动加入到升级任务中: 图10 固件升级任务-动态群组添加新设备 进入“HuaweiDevice001”设备详情界面,修改名称为“AbandonedHuaweiDevice001”。 图11 设备-设备名称修改 修改设备名称成功后,可以查看该设备已自动从“HuaweiDeviceGroup”动态群组中移除。 图12 动态群组-移除设备 查看软固件升级任务子任务详情,可以看到此设备的升级状态为“已移除”。 图13 固件升级任务-动态群组移除设备
  • 群组概述 群组是一系列设备的集合,用户可以对资源空间下所有设备,根据区域、类型等不同规则进行分类建立群组,以便处理对海量设备的批量操作。例如,对资源空间下所有水表设备的群组进行固件升级。平台支持群组的增删改查操作,支持给群组绑定和解绑设备,支持一个设备被添加到多个群组中。 表1 群组分类 群组类型 使用说明 静态群组 手动添加设备到群组以及从群组中移除设备;支持群组层级嵌套。 限制: 账号下单实例最多可创建1,000个群组(包含嵌套的子群组)。 一个群组内最多添加20,000个设备。 一个设备最多可以被添加到10个群组中。 群组嵌套关系最大5级。 子群组只能归属一个父群组,不支持多父群组。 当群组有子群组时不能直接删除,需要先删除子群组才能删除父群组。 动态群组 按照动态群组规则(设备查询条件,类SQL语句)动态的将符合条件的设备自动添加进群组,不符合条件的自动移除群组;不支持手动管理群组中的设备。 限制: 账号下单实例最大可创建10个动态群组。 首次创建动态群组,规则最多允许匹配的100,000个设备(增量加入群组的设备无限制)。 动态群组默认为父群组,不支持将动态群组进行嵌套。 动态群组创建成功后,不允许修改动态群组规则。 不允许手动管理动态群组中的设备。 仅标准版实例、企业版实例支持该接口调用,基础版不支持。 单账号创建动态群组的 TPS 限制最大为1/S(每秒1次请求数)。
  • 创建MySQL 登录华为云官方网站,访问云数据库 MySQL,购买实例。 设备接入服务 企业版实例支持通过内网连接MySQL,标准版实例仅支持通过公网连接MySQL。 在购买的MySQ L实例 中,根据流转数据格式设计数据库表,可以通过数据过滤语句编辑流转数据。本示例使用设备属性上报通知的默认格式,将流转数据中的resource、event、notify_data、event_time分别转存至数据库表中的resource、event、content、event_time字段。 图1 创建数据库表样例
  • 消息下发使用QoS 1说明 MQTT设备接入,使用QoS 1的系统Topic进行设备消息下发说明: 图2 消息下发使用Qos 1流程图 设备上线。 订阅Topic,设置订阅Topic的QoS为1。 图3 订阅Topic的QoS为1 应用侧或平台用下发设备消息接口,下发请求到物联网平台,下发消息样例如下: POST https://{Endpoint}/v5/iot/{project_id}/devices/{device_id}/messages Content-Type: application/json X-Auth-Token: ******** { "message_id": "99b32da9-cd17-4cdf-a286-f6e849cbc364", "name": "messageName", "message": "HelloWorld" } 物联网平台根据协议规范下发消息给设备。MQTT设备必须先订阅对应的Topic才能收到平台下发的消息(平台采用了隐式订阅的功能,对于下行的系统topic,设备无需订阅,非系统topic需要设备订阅),消息样例如下: Topic: $oc/devices/{device_id}/sys/messages/down 数据格式: { "object_device_id": "{object_device_id}", "name": "name", "id": "id", "content": "hello" } 物联网平台向设备下发消息后,向应用服务器返回201 Created,消息状态为DELIVERED。消息下发是异步操作,不需要等设备ACK就可以回响应。 物联网平台没有收到设备接收消息的ACK响应,重发消息;默认每隔2s重发一次,总下发3次。 设备再次上线或订阅Topic。 物联网平台会重发之前设备未回ACK且未超时的消息,默认每隔10s重发一次,总下发5次;每次重发也会触发每隔2s重发机制。 平台将消息的最终结果推送给应用服务器,设备消息状态为已发送(DELIVERED)或超时(TIMEOUT)。使用接口:设备消息状态变更通知接口。 Topic: $oc/devices/{device_id}/sys/messages/down 数据格式: { "resource": "device.message.status", "event": "update", "notify_data": { "message_id": "string", "name": "string", "device_id": "string", "status": "DELIVERED", "timestamp": "string" } }