华为云用户手册

  • 键值存储服务基本概念 存储仓(Store) 存储仓,简称仓,是用来存储表数据的单元。用户可以根据自己的业务系统划分,创建不同的仓。 表(Table) 表是用来存储键值数据的集合,归属于某个仓。用户可以在一个仓中创建多个表,用来储存键值数据。通过本地二级索引和全局二级索引可以快速而准确地检索到表中的键值数据。 KV(Key-Value) 键值数据(Key-Value),简称KV,是文档型的数据项,提供主键到Value的映射。KV数据存储在表中。 分区键和排序键 分区键:分区键是一个表的属性,用于确定该表中的每一个KV存储所在的分区。例如,对于一个用户表,可以指定用户名属性作为分区键。 KVS会根据此用户名的名称(KV)选择分区,同样的用户名名称存储在同一个分区。 排序键:排序键是一个表的属性,该表中的KV会根据排序键进行排序以后存储。查询数据时,您可以按照排序键输出数据。 创建表时,除表名称外,您还必须指定表的主键。表中的主键具有唯一性,因此,任意两个表中的主键都不相同。KVS支持两种不同类型的主键: 简单主键:由分区键构成。 复合主键:由分区键和排序键组合构成。 索引 索引是用来辅助查询表中的KV数据,能够加速键值检索,准确访问键值数据。KVS提供本地二级索引和全局二级索引。 本地二级索引:对于复合主键(分区键+排序键)的表,支持创建本地二级索引,实现分区键下的多个键值的辅助索引。键值写入时,自动生成并存储本地二级索引记录,并保证键值与本地二级索引记录的强一致。 全局二级索引:表支持创建非主键字段的全局检索,全局二级索引只保存索引记录,不保存完整键值内容。键值写入时,自动生成索引记录,并异步写入全局二级索引,键值与全局二级索引记录为最终一致。 关于存储仓、表、KV、索引之间的关系,如图1所示。 图1 KVS基本概念之间的关系 父主题: 基本概念
  • KVS简介 键值存储服务(Key-Value Storage Service,KVS)主要面向游戏、大数据、互联网等业务场景提供完全托管的键值存储及索引服务,主要用于应用的键值类数据(如:元数据、描述数据、管理参数、状态数据)的存储,提供可预测的性能和无缝扩展,无需进行分区管理、硬件预置、集群扩展等操作。 使用KVS创建一个存储仓,在存储仓中创建一个或多个表,来存储和检索任意规模的数据。 虽然KVS服务支持您将数据同步到华为云键值存储指定Region的存储仓里,但是华为云并不感知您对象的具体内容。如果您的行为涉及跨境传输,请您确保使用本服务符合所适用的法律法规要求。
  • 产品架构 KVS产品结构请参考图1。通过和其他产品、服务组合,KVS可以实现如下功能: CES实时采样KVS监控指标,提供及时有效的资源信息监控告警,支持配置监控告警,告警通知随时触发随时响应。 使用KVS在某个区域可以创建多个仓,在仓中可以创建多个表,在表中可以存储键值(Key-Value,简称KV)数据。 KVS提供本地二级索引、全局二级索引,帮助您快速检索表中的键值数据,实现快速且准确访问。 图1 KVS产品架构
  • 访问方式 云服务平台提供的Web化的服务管理平台,即管理控制台、基于HTTPS请求的API(Application programming interface)管理方式以及SDK方式均可访问键值存储服务。 API方式 如果用户需要将云服务平台上的键值存储服务集成到第三方系统,用于二次开发,请使用API方式访问键值存储服务,具体操作请参见《键值存储服务API参考》。 管理控制台方式 其他相关操作,请使用管理控制台方式访问键值存储服务。 如果用户已注册,可直接登录管理控制台,从主页选择“键值存储服务 KVS”。如果未注册,请参见注册华为云并实名认证。 SDK方式 KVS提供Java、C++等主流语言,帮助用户使用SDK完成二次开发,使用SDK方式访问键值存储服务,具体操作请参见《键值存储服务SDK参考》。
  • 计费模式概述 注册配置中心提供包年/包月和按需计费两种计费模式,以满足不同场景下的用户需求。 包年/包月:一种预付费模式,即先付费再使用,按照订单的购买周期进行结算。购买周期越长,享受的折扣越大。一般适用于设备需求量长期稳定的成熟业务。 按需计费:一种后付费模式,即先使用再付费,按照注册配置中心实际使用时长计费,秒级计费,按小时结算。按需计费模式允许您根据实际业务需求灵活地调整资源使用,无需提前预置资源,从而降低预置过多或不足的风险。一般适用于设备需求量瞬间大幅波动的场景。 注册配置中心当前支持的计费模式有“包年/包月”和“按需计费”。 下表列出了两种计费模式的区别。 表1 计费模式 计费模式 包年/包月 按需计费 付费方式 预付费 按照订单的购买周期结算。 后付费 按照引擎实际使用时长计费。 计费周期 按订单的购买周期计费。 秒级计费,按小时结算。 适用计费项 注册配置中心Nacos实例。 注册配置中心Nacos容量单元。 注册配置中心Nacos实例 注册配置中心Nacos容量单元。 冻结计费 按订单的购买周期计费。引擎冻结对包年/包月计费无影响。 引擎实例冻结后,不计费。 变更计费模式 不支持变更为按需计费模式。 支持变更为包年/包月计费模式。 变更规格 支持变更实例规格。 支持变更实例规格。 适用场景 适用于可预估资源使用周期的场景,价格比按需计费模式更优惠。对于长期使用者,推荐该方式。 适用于需求波动的场景,可以随时开通,随时删除。 父主题: 计费模式
  • 在续费管理页面开通自动续费 登录华为云控制台。 单击控制台页面上方“费用”,在下拉菜单中选择“续费管理”进入“续费管理”页面。 自定义查询条件。 可在“自动续费项”页签查询已经开通自动续费的资源。 可对“手动续费项”、“到期转按需项”和“到期不续费项”页签的资源开通自动续费。 为包年/包月引擎开通自动续费。 单个引擎开通自动续费:选择需要开通自动续费的注册配置中心,单击操作列“设为自动续费”。 批量引擎开通自动续费:选择需要开通自动续费的注册配置中心,单击列表左上角的“设为自动续费”。 选择续费时长,并根据需要设置自动续费次数,单击“开通”。 在“续费管理”页面开通的自动续费,自动续费周期以实际选择的续费时长以及自动续费次数为准。例如:您选择了续费时长3个月,不限次数,即在每次到期前自动续费3个月。
  • SFS、OBS和EVS有什么区别? 块存储、文件存储和对象存储三种类型存储的区别请参考块存储、文件存储和对象存储的区别。此处仅介绍三个服务的区别。 弹性文件服务SFS、对象存储服务OBS与云硬盘EVS之间的对比如表1所示。 表1 SFS、OBS、EVS服务对比 对比维度 弹性文件服务 对象存储服务 云硬盘 概念 提供按需扩展的高性能文件存储,可为云上多个云服务器提供共享访问。弹性文件服务就类似Windows或Linux中的远程目录。 提供海量、安全、高可靠、低成本的数据存储能力,可供用户存储任意类型和大小的数据。 可以为云服务器提供高可靠、高性能、规格丰富并且可弹性扩展的块存储服务,可满足不同场景的业务需求。云硬盘就类似PC中的硬盘。 存储数据的逻辑 存放的是文件,会以文件和文件夹的层次结构来整理和呈现数据。 存放的是对象,可以直接存放文件,文件会自动产生对应的系统元数据,用户也可以自定义文件的元数据。 存放的是二进制数据,无法直接存放文件,如果需要存放文件,需要先格式化文件系统后使用。 访问方式 在ECS/BMS中通过网络协议挂载使用,支持NFS和CIFS的网络协议。需要指定网络地址进行访问,也可以将网络地址映射为本地目录后进行访问。 可以通过互联网或专线访问。需要指定桶地址进行访问,使用的是HTTP和HTTPS等传输协议。 只能在ECS/BMS中挂载使用,不能被操作系统应用直接访问,需要格式化成文件系统进行访问。 使用场景 如高性能计算、媒体处理、文件共享和内容管理和Web服务等。 说明: 高性能计算:主要是高带宽的需求,用于共享文件存储,比如基因测序、图片渲染这些。 如大数据分析、静态网站托管、在线视频点播、基因测序和智能视频监控等。 如高性能计算、企业核心集群应用、企业应用系统和开发测试等。 说明: 高性能计算:主要是高速率、高IOPS的需求,用于作为高性能存储,比如工业设计、能源勘探这些。 容量 PB级别 EB级别 TB级别 时延 3~10ms 10ms 亚毫秒级 IOPS/TPS 单文件系统 10K 千万级 单盘 128K 带宽 GB/s级别 TB/s级别 MB/s级别 是否支持数据共享 是 是 是 是否支持远程访问 是 是 否 是否支持在线编辑 是 否 是 是否能单独使用 是 是 否(EVS要搭配ECS才能存储文件) 父主题: 概念类
  • KV简介 键值数据(Key-Value),以下简称KV,是KVS云服务数据存储的最小单位,用来存储用户具体数据信息,是文档型的数据项。KVS自顶向下按照仓、表、KV的结构存储数据,仓中包含1个或多个表,表中包含0个或多个KV,每个KV都有不同于其他所有KV的唯一标识。例如,用一张表记录某个部门所有员工的信息,每一个KV就代表一个员工,员工的身份证号就是唯一标识。 图1 KV简介 每个KV包含一个或多个属性,属性有必选属性和可选属性,必选属性对应分区键和排序键,每一条KV都必须填写,否则会导致插入KV失败。可选属性您可以根据自身诉求自定义添加,不会影响KV插入。 例如,以下为一个员工信息表,每一条KV代表一个员工。对于KV的属性,身份证号(SSN)是分区键,姓名(Name)是排序键,这两者KV必须赋值。性别(Gender)、职位(Job)、获奖记录(Award Records)等属性是附加的可选属性,用户可以自定义。 Employee { "SSN": 0123456789, "Name": "张三", } { "SSN": 9876543210, "Name": "李四", "Gender": "female", "Job": "O&M staff", "Award Records": "Best Employee Award" } KVS云服务支持上传、更新、删除、查询KV列表、查询KV详细信息。 表1 KVS云服务支持的KV相关功能 功能 描述 插入KV 向指定表中插入新的KV数据。 更新KV 更新指定表中指定KV的数据。 删除KV 删除指定KV。 查询KV 查询指定表中的KV数据。 父主题: KV管理
  • 监控指标 表1 KVS支持的监控指标 指标ID 指标名称 指标含义 取值范围 测量对象 监控周期(原始指标) store_request_count_monitor_2XX 2xx状态码个数 该指标用于统计响应状态码为2XX的请求数。 单位:个 ≥ 0 counts 仓 1分钟 store_request_count_monitor_4XX 4xx状态码个数 该指标用于统计响应状态码为4xx的请求数。 单位:个 ≥ 0 counts 仓 1分钟 store_request_count_monitor_5XX 5xx状态码个数 该指标用于统计响应状态码为5xx状态码个数。 单位:个 ≥ 0 counts 仓 1分钟 store_kv_request_latency_ave 请求平均时延 该指标用于统计周期内从系统收到完整请求到结束返回响应的耗时平均值。 单位:毫秒 ≥ 0 ms 仓 1分钟 store_read_traffic 读流量 该指标用于统计当前统计周期内读取类请求文档大小总和。 单位:字节 ≥ 0 bytes 仓 1分钟 store_write_traffic 写流量 该指标用于统计当前统计周期内写入类请求文档大小总和。 单位:字节 ≥ 0 bytes 仓 1分钟 store_kv_request_count 总接口请求数 该指标用于统计当前统计周期的请求总数。 单位:个 ≥ 0 counts 仓 1分钟
  • 响应消息示例 HTTP/1.1 200 Date: Wed, 18 Dec 2019 06:20:40 GMT Content-Type: application/json;charset=UTF-8 Content-Length: 714 Connection: keep-alive X-Request-Id: f90fbd8714328398fcbedddde0f1303c { "accessToken": "stbo3vX1pyduWpSFsjMCmR93mJkfQGnohjvQ", "clientType": 72, "createTime": 1599102826754, "daysPwdAvailable": -18172, "delayDelete": false, "expireTime": 1577979513, "firstLogin": true, "forceLoginInd": null, "proxyToken": null, "pwdExpired": false, "refreshCreateTime": 1599102826754, "refreshExpireTime": 1601694826, "refreshToken": "stbdkkBy2XkfsiPh4cP9xev0oGL5EmiQxP1a", "refreshValidPeriod": 2592000, "tokenIp": "10.8.0.90", "tokenType": 0, "user": { "adminType": 2, "alias1": null, "appId": null, "cloudUserId": "76aaaba8a12f4c0a8a43192...", "companyDomain": null, "companyId": "f5968fc4f9c14d50905e8e66672dabc6", "corpType": 0, "freeUser": false, "grayUser": false, "headPictureUrl": null, "isBindPhone": null, "name": "xxxx_name", "nameEn": null, "numberHA1": "1ead5e5ce44849bc2718d5c....", "paidAccount": null, "paidPassword": null, "password": null, "realm": "huaweicloud.com", "serviceAccount": "sip:xxxx@huaweicloud.com", "spId": "666bd8558e4646e1a7e1a0c99cf898e8", "status": 0, "thirdAccount": "62fe180o133fd...", "tr069Account": "X3M537A6IX4SC...", "ucloginAccount": "z8b2vo875ioh54r29ad5e3552vb3gm8np2j167...", "userId": "0d5202707123429d876....", "userType": 2, "visionAccount": null, "weLinkUser": false }, "validPeriod": 84616 }
  • 请求消息示例 PUT /v1/usg/acs/token Connection: keep-alive X-Access-Token: stbo3vX1pyduWpSFsjMCmR93mJkfQGnohjvQ Content-Type: application/json Content-Length: 88 Host: api.meeting.huaweicloud.com User-Agent: Apache-HttpClient/4.5.3 (Java/1.8.0_191)
  • 响应参数 表4 响应参数 参数 类型 描述 accessToken String 接入Token字符串。 clientType Integer 登录账号类型。 72:API调用类型 createTime Long 业务token的创建时间戳,单位:毫秒。 daysPwdAvailable Integer 密码有效天数。 delayDelete Boolean 是否延时删除状态。 expireTime Long Token的失效时间戳,单位:秒。 firstLogin Boolean 是否首次登录。 说明: 首次登录表示尚未修改过密码。首次登录时,系统会提醒用户需要修改密码。 默认值:false。 forceLoginInd Integer 抢占登录标识。 0:非抢占 1:抢占(未启用) proxyToken ProxyTokenDTO object 代理鉴权信息。 pwdExpired Boolean 密码是否过期。 默认值:false。 refreshCreateTime Long 刷新token的创建时间戳,单位:毫秒。 refreshExpireTime Long 刷新token的失效时间戳,单位:秒。 refreshToken String 刷新token字符串。 refreshValidPeriod Long 刷新token有效时长,单位:秒。 tokenIp String 用户IP。 tokenType Integer token类型。 0:用户ACCESS TOKEN 1:会控TOKEN 2:一次性TOKEN user UserInfo object 用户鉴权信息。 validPeriod Long Token的有效时长,单位:秒。
  • 请求参数 表2 参数说明 参数 是否必须 类型 位置 描述 X-Access-Token 是 String Header Access Token。 X-Request-ID 否 String Header 请求requestId,用来标识一路请求,用于问题跟踪定位,建议使用UUID,若不携带,则后台自动生成。 Accept-Language 否 String Header 语言参数,默认为中文zh-CN,英文为en-US。
  • 发送OBS事件 在OBS管理控制台左侧导航栏选择“桶列表”。 在桶列表单击已创建的桶“eg-obs”,进入“对象”页面。 进入待上传的文件夹,单击“上传对象”,系统弹出“上传对象”对话框。 上传一个本地已准备好的文件,单击“上传”。 更多上传对象文件的方法请参考上传对象。 图1 上传对象 https://support.huaweicloud.com/usermanual-obs/zh-cn_topic_0045829661.html上传对象 父主题: 实施步骤
  • 资源规划 表1 资源规划 类别 子类 规划 备注 VPC VPC名称 vpc-src-172 自定义,易理解可识别。 所属Region 测试Region 现网实际选择时建议选择和自己业务区最近的Region,减少网络时延。 可用区 可用区3 - 子网网段 172.16.0.0/16 子网选择时建议预留足够的网络资源。 子网名称 subnet-src-172 自定义,易理解可识别。 本地MySQL数据库 数据库版本 5.7.38 - 数据库用户 test_info 可以自定义用户,但是迁移时最小权限为:SELECT、LOCK TABLES、REPLICATION SLAVE、REPLICATION CLIENT GaussDB 实例名 Auto-drs-gaussdbv5-tar-1 自定义,易理解可识别。 数据库版本 GaussDB1.3企业版 - 实例类型 分布式版,1CN,3DN,3副本 本示例中为分布式实例。 部署形态 独立部署 - 事务一致性 强一致性 - 分片数量 3 - 协调节点数量 3 - 存储类型 超高IO - 可用区 可用区2 本示例中选择了单可用区,实际建议选择多可用区,以提高实例的高可用性。 性能规格 通用增强Ⅱ型 8 vCPUs | 64GB 本示例中为测试实例,选择较小的测试规格,实际选择规格以业务诉求为准。 存储空间 480G 本示例中为测试实例,选择较小的存储空间,实际选择存储空间大小以业务诉求为准。 加密磁盘 不加密 本示例中选择磁盘不加密,选择加密后会提高数据安全性,但对数据库读写性能有少量影响,实际请按照业务使用策略进行选择。 DAS登录数据库 数据库引擎 GaussDB - 数据库来源 GaussDB 勾选本示例中创建的GaussDB实例 数据库名称 postgres - 登录用户名 root - 密码 - 本示例中创建的GaussDB实例root用户密码 DRS迁移任务 迁移任务名 DRS-test-info 自定义。 目标库名称 test_database_info 自定义,易理解可识别,但是需要确保兼容模式为MySQL模式。 源数据库引擎 MySQL - 目标数据库引擎 GaussDB - 网络类型 公网网络 本示例中采用公网网络。
  • 产品优势 随着业务的发展,越来越多的企业选择结合物联网技术来实现自身效益增长。相比企业自建MQTT集群,使用华为云IoT服务低成本构建物联网解决方案,在能力、成本、运维、安全、生态等诸多方面具有突出优势。 表1 优势对比 维度 子项 华为云IoT服务 企业基于开源MQTT集群自研 能力 协议灵活 广泛支持IoT主流的接入协议及私有协议,满足各类设备和接入场景要求。 提供插件机制,实现自定义协议解析。 只支持MQTT协议,扩展其他协议时需要再研发扩展,同时维护多协议实现难度大、成本高、效率低。 快速接入 提供系列化、多语言的开源IoT Device SDK; 与主流模组、芯片预集成,实现多网络、多协议接入,简化设备接入难度,实现小时级设备极简接入。 需要熟悉各类语言的开发人员投入,开发工作量大。 性能稳定 可实现白天单击购买就可以实现服务资源平滑弹性扩展; 支持亿级设备安全稳定连接、10万TPS高并发可靠通信、万级TPS并发设备上线能力; 服务可用性99.95%。 需要研发人员进行调优,如果要保证99.9%以上的可用性,需要精通开源MQTT研发人员以及资深的架构人员。 特色功能 Cell化技术,实现故障范围的有效控制; 支持消息跟踪,方便快速的故障定位和原因分析; 支持设备影子; 支持OTA升级; 支持物模型,将产品功能抽象归纳,形成“标准物模型”,实现软硬件解耦开发,提升系统集成效率; 支持插件机制,实现自定义协议解析; 支持数据转发规则,数据无缝流转到10+云服务; 支持设备联动规则,基于Time-Condition-Action自定义规则,灵活设定场景联动,实现跨应用/子系统,多设备自动化协同; 开放架构,及时享受云计算的最新技术和服务; 功能丰富灵活,多行业完整解决方案,已成功服务众多行业客户。 开源MQTT提供了基本的功能,构筑完整解决方案时需要开发人员基于开源能力进行开发。而开发人员对开源代码进行侵入式修改,容易在开源中间件升级时遗漏修改的部分导致现网事故。 设备通信 通过全球SIM联接服务购买物联网卡,快速实现设备上云,并实现全球设备的联接。目前华为全球SIM联接服务覆盖全球200+国家和地区,全球合作运营商30+,并实现一个国家内多运营商覆盖,提供最好的网络和最优的资费。 需要跨地域采购物理SIM卡,生产地无法测试目的地网络状态。 全球拓展难:需与全球多家运营商谈判、对接,集成工作挑战大。 漫游资费高:企业迫切希望使用设备所在国的本地资费,降低成本。 技术支持 7*24小时专业贴心支持。 工单系统10分钟响应。 开源MQTT没有支持服务,且有大量的默认配置参数,需要企业根据业务的场景进行调整,在不精通开源代码的情况下,配置者参数使用不当对商用系统造成巨大潜在风险,出现问题时候也只能自行解决。 成本 服务器成本 无需购买服务器。 需购买服务器。 人力成本 购买云服务,无需额外人力投入。 企业自行构建,需要投入专业的开发、运维团队。 资源使用 开箱即用,弹性灵活,业务上量,无感扩容。 企业自行构建,需要自己开发具备弹性功能。 架构成本 基于云原生2.0构建高可用、高性能、高安全架构,持续演进。 企业自行构建,团队基于开源去实现高可用、高性能、高安全功能,难度大、门槛高。 运维 基础设施运维 专业团队统一运维,快速响应,扩容、升级、异常运维都由华为提供。 企业自行构建,自建运维团队或第三方运维,要解决扩容,升级,运维问题。根据业界统计,大部分的业务故障是在扩容、升级操作触发的,所以运维成本是开发成本的几倍甚至几十倍。 服务平台版本 由公有云服务商统一更新,版本迭代快。 企业自行构建。 全链路自诊断,高效运维 全链路日志分析和消息跟踪; 设备状态实时监控和感知; 灵活自定义业务指标告警。 企业自行构建。 安全 系统安全 已获国家安全等保四级认证,通过ISO27001/ISO27017/ ISO27018/CSA STAR国际安全认证,数据隐私保护遵从欧盟GDPR标准和中国最新的《个人信息保护法》,建立了可信的安全体系。 传输网络层:结合WAF、DDOS提供边界安全防护,提供包括DTLS、TLS、HTTPS、COAPS、MQTTS等高效安全传输协议。 设备边侧:提供数字证书、一机一密的接入安全,基于LiteOS的OS安全能力。 平台侧:基于华为云整网视角进行威胁分析,充分复用华为云安全服务产品、公共安全服务/组件,构建安全防御体系。 企业自行构建,端到端安全是一项系统工程,门槛非常高,构筑和看护系统级的安全能力成本高、难度大。 数据安全 具备完整的安全防护体系,数据存放在云服务提供商的数据中心,云存储级数据安全冗余。 企业自行构建,需要考虑数据冗余存储,备份存储,恢复等能力。 灾备与容灾 业务双活、多数据中心容灾,利用多region和多AZ构筑高可用和灾备能力。 企业自行构建,自建集群通常不具备容灾能力,业务双活、容灾设备投入大,投入和收益通常不成正比。 漏洞修复 建立有一整套漏洞管理体系和专门的安全研究部门,从漏洞研究,发现,跟踪,修复,有一整套体系保证漏洞的及时修复。 大部分企业没有建立漏洞的管理机制,对漏洞更新不及时,很容易被攻击,很多企业被攻击,数据被窃取也没有感知到。 生态 第三方接入 整合上下游生态资源,提供增值服务。 厂家自行构建。 可扩展性 1、平滑扩容,从几万设备到亿级设备做到业务无中断快速扩容 2、当业务发展需要扩展其他功能时,比如AI智能功能,可以与华为云其他大数据、EI、中间件产品无缝对接,可以方便快捷的实现海量设备数据的存储、计算以及智能分析。并且由于云化产品都可以小规模验证,可以方便客户低成本快速试错,实现业务创新 扩展周期相对长,需要自行开发与各个系统和或者组件的对接,投入的人力物力成本高。 表2 费用对比 项目 华为云IoT服务 企业基于开源MQTT集群自研(以华为云资源为参考) 云资源费用 购买1个S2中频单元,注册设备数上限20万,同时在线设备数上限1万,每日消息数上限4,000万,上下行消息TPS峰值1,000TPS。 总费用:30,000元/年。 服务器资源:购买2台ECS实例(以4核CPU、8 GB内存、40 GB高IO磁盘规格为)费用为4,565.80元/年; 云数据库RDS:最小规格,2核4GB、40GB SSD云盘的实例费用为4700元/年; 公网流量接入:购买免费的共享型ELB,叠加最小规格1Mbps带宽的EIP,费用为184元/年; 总费用:9,449.8元/年。 人力费用 无。 使用基础中间件实现基本功能: 1位工程师负责平台的日常运维和研发; 假设工程师投入50%的工作量,月薪10,000元; 总计:10,000 × 12 × 50% = 6万元/年 在基础中间件的基础上叠加部分特色功能: 假设不考虑实现平台的高可用、高性能、高安全,仅实现部分功能性能力; 2位全栈开发工程师,负责实现设备管理、消息通信、规则引擎等部分能力以及平台前端和后台的开发及运维; 1位协议专业人才,负责实现设备接入能力(原生协议、泛协议、行业协议的设备接入能力以及SDK接入)等的设备端开发; 假设所有工程师投入100%的工作量,月薪10,000元; 总计:3 x 10,000 x 12 x 100% = 36万元/年。 不考虑奖金和五险一金成本。 总计 30,000元/年。 实现基础功能:69,449.8元/年。 实现基础功能,叠加部分特色功能:369,449.8元/年。
  • 数据保护技术 责任共担模式适用于IoTDA的数据保护,如该模式中所述,IoTDA负责服务自身的安全,提供安全的数据保护机制。用户负责安全地使用IoTDA服务,包括使用时的安全参数配置以及维护使用IoTDA及其依赖的其他云服务权限的控制。 表1 数据保护手段 简要说明 详细介绍 传输加密(HTTPS) IoTDA支持HTTPS传输协议,为保证数据传输的安全性,建议使用TLS 1.2 或更高版本 使用HTTPS协议接入 传输加密(MQTTS) IoTDA支持MQTTS传输协议,为保证数据传输的安全性,建议使用TLS 1.2 或更高版本,加密套件推荐使用TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256和TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384 MQTT协议支持说明 传输加密(AMQPS) IoTDA支持AMQPS传输协议,为保证数据传输的安全性,接收方必须使用TLS加密,且使用TLS1.2及以上版本,不支持非加密的TCP传输 AMQP客户端接入说明 父主题: 安全
  • 权限配置流程 IoTDA的权限配置和授权都在IAM控制台进行,配置流程如下: 图2 给用户授权IoTDA权限流程 创建用户组并授权:在IAM控制台创建用户组,并授权IoTDA权限,例如IoTDAReadOnlyAccess。 创建用户并加入用户组:在IAM控制台创建用户,并将其加入1中创建的用户组。 用户登录并验证权限:新创建的用户登录控制台,切换至授权区域,验证权限: 在“服务列表”中选择IoTDA,进入主界面尝试创建设备,如果无法无法成功操作(假设当前权限仅包含IoTDAReadOnlyAccess),表示“IoTDAReadOnlyAccess”已生效。 在“服务列表”中选择除IoTDA外(假设当前策略仅包含IoTDAReadOnlyAccess)的任一服务,若提示权限不足,表示“IoTDAReadOnlyAccess”已生效。
  • IoTDA权限 图1 IoTDA权限管理能力 默认情况下,管理员创建的IAM用户没有任何权限,需要将其加入用户组,并给用户组授予策略和角色,才能使得用户组中的用户获得策略定义的权限,这一过程称为授权。授权后,用户就可以基于被授予的权限对云服务进行操作。 IoTDA为项目级服务,授权时,“作用范围”需要选择“区域级项目”,然后在指定区域(如华南-广州)对应的项目(cn-south-1)中设置相关权限,并且该权限仅对此项目生效;如果在“所有项目”中设置权限,则该权限在所有区域项目中都生效。访问IoTDA时,需要先切换至授权区域。 设备接入提供“角色”和“策略”两种维度的权限管理。 角色:IAM提供的一种根据用户的工作职能定义权限的粗粒度授权机制。该机制以服务为粒度,提供有限的服务相关角色用于授权。由于华为云各服务之间存在业务依赖关系,因此给用户授予角色时,可能需要一并授予依赖的其他角色,才能正确完成业务。角色并不能满足用户对精细化授权的要求,无法完全达到企业对权限最小化的安全管控要求。 策略:IAM提供的一种细粒度授权的能力,可以精确到具体服务的操作、资源以及请求条件等。基于策略的授权是一种更加灵活的授权方式,能够满足企业对权限最小化的安全管控要求。例如:针对IoTDA服务,管理员能够控制IAM用户仅能对某一个实例或者资源空间进行指定的管理操作。多数细粒度策略以API接口为粒度进行权限拆分,IoTDA支持的API授权项请参见权限与授权项说明。 当添加了IoTDA FullAccess权限的子账号在Console控制台界面使用其他功能时仍没有操作权限,需要您单独添加对应服务或功能的Admin或者FullAccess权限。具体详情如下: GSL、DIS当前不支持细粒度鉴权,需要添加对应admin权限。 BCS、FunctionGraph,SMN,OBS,SWR,AOM,IAM,LTS,VPC,TMS,DMS(Kafka),VPCEP 等,FullAccess中缺少对应权限,需单独添加; 更多相关功能需要的权限,请参见表1所示。 由于缓存的存在,对用户、用户组授予IoTDA相关的角色后,大概需要等待15分钟角色才能生效;授予IoTDA相关的策略后,大概需要等待5分钟策略才能生效。 表1 外部依赖相关功能的权限 服务功能 权限 BCS bcs:huaweiCloudChainInstance:list bcs:huaweiCloudChainEndpoint:list bcs:huaweiCloudChainChain:getChain cs:huaweiCloudChainInstance:get bcs:huaweiCloudChainContract:list FunctionGraph FunctionGraph:function:list SMN smn:topic:list OBS obs:bucket:ListAllMyBuckets obs:bucket:ListBucket SWR swr:repository:listNamespaces swr:instance:listCenters AOM aom:alarm:list aom:metric:list IAM iam:projects:listProjects iam:permissions:listRolesForAgency iam:permissions:listRolesForAgencyOnProject iam:permissions:checkRoleForAgencyOnProject iam:permissions:grantRoleToAgencyOnProject iam:roles:listRoles iam:agencies:createAgency iam:agencies:listAgencies LTS lts:topics:list lts:groups:list lts:groups:create lts:topics:create VPC vpc:vpcs:list vpc:subnets:get vpc:securityGroups:get TMS tms:predefineTags:list DMS(Kafka) dms:instance:list dms:instance:get VPCEP vpcep:endpointServices:list vpcep:endpointServices:get 表2 IoTDA系统权限 系统角色/策略名称 描述 类别 Tenant Administrator 拥有该权限的用户拥有除IAM外,其他所有服务的所有执行权限 系统角色 Tenant Guest 拥有该权限的用户拥有除IAM外,其他所有服务的只读权限。 系统角色 IoTDA FullAccess 拥有设备接入服务所有权限 系统策略 IoTDA ReadOnlyAccess 拥有设备接入服务只读权限 系统策略 表3 IoTDA操作与资源权限关系 操作名称 Tenant Administrator Tenant Guest IoTDA FullAccess IoTDA ReadOnlyAccess 创建产品 √ x √ x 查询产品列表 √ √ √ √ 查询产品 √ √ √ √ 修改产品 √ x √ x 删除产品 √ x √ x 创建设备 √ x √ x 查询设备列表 √ √ √ √ 查询设备 √ √ √ √ 修改设备 √ x √ x 删除设备 √ x √ x 重置设备密钥 √ x √ x 冻结设备 √ x √ x 解冻设备 √ x √ x 重置设备指纹 √ x √ x 灵活搜索设备列表 √ √ √ √ 下发设备消息 √ x √ x 查询设备消息 √ √ √ √ 查询指定消息id的消息 √ √ √ √ 下发广播消息 √ x √ x 下发设备命令 √ x √ x 下发异步设备命令 √ x √ x 查询指定id的命令 √ √ √ √ 修改设备属性 √ √ √ √ 下发设备消息 √ x √ x 查询指定消息id的消息 √ √ √ √ 查询产品列表 √ √ √ √ 创建产品 √ x √ x 查询产品 √ √ √ √ 修改产品 √ x √ x 删除产品 √ x √ x 查询设备列表 √ √ √ √ 注册设备 √ x √ x 查询设备 √ √ √ √ 修改设备 √ x √ x 删除设备 √ x √ x 重置设备密钥 √ x √ x 查询设备影子数据 √ √ √ √ 配置设备影子预期数据 √ x √ x 下发设备命令 √ x √ x 查询设备属性 √ √ √ √ 修改设备属性 √ x √ x 查询设备属性 √ √ √ √ 查询设备影子数据 √ √ √ √ 配置设备影子预期数据 √ x √ x 创建AMQP队列 √ x √ x 查询AMQP列表 √ √ √ √ 查询单个AMQP队列 √ √ √ √ 删除AMQP队列 √ x √ x 生成接入凭证 √ x √ x 创建规则触发条件 √ x √ x 查询规则条件列表 √ √ √ √ 查询规则条件 √ √ √ √ 修改规则触发条件 √ x √ x 删除规则触发条件 √ x √ x 创建规则动作 √ x √ x 查询规则动作列表 √ √ √ √ 查询规则动作 √ √ √ √ 修改规则动作 √ x √ x 删除规则动作 √ x √ x 创建规则 √ x √ x 查询规则列表 √ √ √ √ 修改规则 √ x √ x 查询规则 √ √ √ √ 删除规则 √ x √ x 修改规则状态 √ x √ x 添加设备组 √ x √ x 查询设备组列表 √ √ √ √ 查询设备组 √ √ √ √ 修改设备组 √ x √ x 删除设备组 √ x √ x 管理设备组中的设备 √ √ √ √ 查询设备组设备列表 √ √ √ √ 绑定标签 √ x √ x 解绑标签 √ x √ x 按标签查询资源 √ √ √ √ 查询资源空间列表 √ √ √ √ 创建资源空间 √ x √ x 查询资源空间 √ √ √ √ 删除资源空间 √ x √ x 创建批量任务 √ x √ x 查询批量任务列表 √ √ √ √ 查询批量任务 √ √ √ √ 批量任务重试 √ x √ x 批量任务停止 √ x √ x 删除批量任务 √ x √ x 上传批量任务文件 √ x √ x 查询批量任务文件列表 √ √ √ √ 删除批量任务文件 √ x √ x 上传设备CA证书 √ x √ x 获取设备CA证书列表 √ √ √ √ 删除设备CA证书 √ x √ x 验证设备CA证书 √ x √ x 创建OTA升级包 √ x √ x 查询OTA升级包列表 √ √ √ √ 获取OTA升级包详情 √ √ √ √ 删除OTA升级包 √ x √ x 查询隧道列表 √ √ √ √ 创建设备隧道 √ x √ x 删除设备隧道 √ x √ x 查询隧道详情 √ √ √ √ 修改设备隧道 √ x √ x
  • 安全&数据保护 已获国家安全等保2.0四级认证,通过ISO27001/ISO27017/ ISO27018/CSA STAR国际安全认证,数据隐私保护遵从中国《个人信息保护法》、欧盟GDPR数据隐私保护要求,建立端到端可信的安全体系。 设备安全:提供一机一密的设备安全认证机制,防止设备非法接入,支持设备的安全检测。 信息传输安全:基于TLS、DTLS、DTLS+加密协议,提供安全的传输通道。 平台安全:基于华为云整体进行威胁防御,充分利用华为云安全服务/组件和华为的安全研究部门,建立安全分析、设计、编码、测试、安全攻防等一整套安全防御体系。 数据保护:满足中国《个人信息保护法》、欧盟GDPR数据隐私保护要求。
  • 设备发放业务流程 设备启动后,通过Bootstrap流程(设备出厂时预置设备发放平台地址作为引导服务器地址),引导物联网设备在初次上电时获得正确的目标物联网平台地址,继而完成设备与平台的建链过程。保证设备安全可靠的按业务目标上线,最大程度上减少人为干预的错误可能。 流程如下: 首先确认用户是否开通设备接入服务(物联网平台)。 在设备发放平台创建设备的发放清单(包括预注册设备以及添加发放策略)。 设备出厂时预置设备发放平台地址,设备上电后,设备发放服务通过使用标准 X.509证书验证或者根据设备密钥验证设备的标识,把设备发放到对应的设备接入平台。 设备发放将设备接入平台连接信息返回给设备。 设备通过收到的设备接入平台连接信息连接到设备接入平台。 父主题: 设备发放
  • 使用限制 用户在IoT物联网平台开发或使用时有以下技术规格限制,如果限制数量不能满足您的业务需求,请提交工单说明您的需求。 表1 资源约束 分类 对象 描述 限制 实例管理 基础版实例 同一个区域下,单个华为云账号可开通的实例数量。 1个。2023年1月1日之后如需开通基础版请提交工单说明诉求,建议优先选用标准版或企业版。 标准版实例 单个标准版实例可购买单元数量,详情请参考标准版实例。 100个 企业版实例 企业版支持的VPC网段,详情请参考购买实例约束说明。 当前VPC支持三个网段10.0.0.0/8~24、172.16.0.0/12~24和192.168.0.0/16~24。 子网络中可用的地址数量,详情请参考购买实例约束说明。 10个 资源空间管理 资源空间 单个IoTDA实例支持的资源空间数量。 10个 设备接入 MQTT MQTT协议标准。 支持MQTT v3.1/v3.1.1/v5.0协议版本,不支持协议中的QoS2、will、retain msg。 MQTT协议支持的安全等级。 支持TLS1.1、TLSV1.2、TLSV1.3。 MQTT连接心跳时间。设备端连接心跳设置,请参见建立连接。 30至1200秒,推荐设置为120秒。设置的心跳时间不在此区间内,服务器会拒绝连接。 最大超时时间=心跳时间*1.5,超过最大超时时间未收到设备消息,服务器会自动断开连接。 同一时间内,单个设备允许和IoTDA建立连接的数量。 1个 MQTT自定义Topic支持的最大长度。 128字节 MQTT单条发布消息最大长度(超过此大小的发布请求将被直接拒绝)。 1MB 单个MQTT连接的最大订阅数量。 100个 单个MQTT连接最大带宽。 1MB/s 单个MQTT连接每秒最大上行消息数量。 50条 单个IoTDA实例设备每秒最大新建连接请求数量。 基础版100 标准版请参考标准版规格 企业版请参考企业版规格 单个IoTDA实例设备侧每秒最大上行的请求数量(单消息payload平均为512字节)。 基础版500 标准版请参考标准版规格 企业版请参考企业版规格 CoAP/LwM2M 支持的CoAP协议版本。 支持RFC7252标准3 支持的LWM2M协议版本。 支持1.0.2版本 LwM2M/CoAP使用的传输层协议。 使用UDP协议 CoAP支持的安全等级。 采用DTLS v1.2保证通道安全 支持CoAP消息包大小。 1KB 单设备每分钟消息数。 300条 HTTP 支持的HTTP协议版本。 HTTP/1.0 ,HTTP/1.1 支持的TLS版本。 TLS1.1,TLSV1.2 支持的body体最大消息大小。 1MB 设备管理 产品 单个资源空间下产品数量。 1,000个 单个产品下服务能力JSON大小。 500KB 单个产品下服务数量。 500个 单个服务能力下属性/事件/命令数量。 500个 自定义topic 单个产品自定义topic。 50个 基础版设备数 同时在线设备数。 50,000个 最大注册设备数。 50,000个 标准版设备数 单个标准版支持的同时在线设备数=每单元支持的同时在线设备数×单元个数。 10,000个/单元 单个标准版支持的最大注册设备数为同时在线设备数的20倍。 200,000个 企业版设备数 单个企业版实例支持的同时在线设备数、最大注册设备数按照其选定的企业版规格而定,最小规格为10万同时在线设备数,200万最大注册设备数。 企业版请参考企业版规格 设备 单个网关设备下最多可添加的子设备数量。 50,000个 网关结构层次最大深度。 2级 设备标签 单个设备支持设置的标签数量。 10个 静态群组 单个群组层次结构的最大深度。 5级 单资源空间最大群组数。 1,000个 单个群组内最多可添加的设备数量。 20,000个 单个设备最多可以被添加的群组数量。 10个 动态群组 账号下单实例下最多可创建的动态群组数量 10个 首次创建动态群组,规则最多允许匹配的设备数量(增量加入群组的设备无限制) 10000个 批量任务 单次批量注册最多的设备数量。 100,000个 编解码 单个产品可携带的编解码插件数量。 1个 离线上传的编解码插件包大小。 4MB 编解码脚本最大长度。 1MB 单次调用编解码请求的超时时间。 5s 设备联动规则 单个IoTDA实例下最多可添加的规则数量,云端规则和端侧规则数量单独计算。 基础版、标准版20个 企业版200个 单个规则最多支持设置动作数量。 10个 单个IoTDA实例下每秒可执行动作数。 基础版、标准版10个 企业版100个 单个IoTDA实例支持同时状态持续时长任务数。 基础版、标准版100个 企业版1000个 批量任务 单个资源空间下最多同时处理的批量任务数量。 10个 批量任务文件最大限制。 2MB 批量任务文件最大行数。 100,000行 单个IoTDA实例下支持的批量任务文件最大个数。 10个 OTA升级 单个升级包大小。 升级包上传到IoTDA限制为20MB,升级包上传到OBS存储不限制升级包大小。 单个资源空间支持上传升级包的个数。 200个 单个资源空间上传最大文件大小。 文件上传到IoTDA限制为500MB,文件上传到OBS不限制文件大小。 单次批量任务最多可以升级的设备数量。 100000个 单个资源空间下最多可以同时处理的批量任务数量。 10个 自注册模板 账号下单实例下最多可创建的自注册模板数量 10个 消息通信 同步命令 同步命令设备响应时间。 20秒 设备同步命令最大消息大小。 256KB 设备消息 设备下发消息老化时长。 24小时 设备下发消息最大消息大小。 256KB 单个设备下发消息缓存数量。 20个 设备属性 网关上报子设备属性时一次最大可上报子设备数量。 100个 异步命令 设备异步命令老化时长。 48小时 设备异步命令最大消息大小。 256KB 设备异步命令缓存数量。 20个 设备影子 设备影子期望值文档大小限制 64KB 设备影子上报值文档大小限制 64KB 设备订阅策略 单个设备或产品最多绑定策略数量 5个 一个租户最大策略数量 50个 最大策略文档大小 10KB 一条策略最大文档数目 10条 消息流转 转发规则、转发动作 单个IoTDA实例允许配置规则数量。 100个 单规则允许的最大动作数量。 10个 转发规则中select参数长度限制。 0.5KB 转发规则中where参数长度限制。 0.5KB 消息流转缓存策略 消息缓存大小。 1GB 消息缓存时间。 24小时 AMQP AMQP协议。 支持AMQP1.0协议版本 支持的TLS版本。 TLS1.2版本 单个IoTDA实例允许配置的队列数量。 100个 单连接监听的队列数量。 10个 单个IoTDA实例连接数量。 32个 证书管理 证书配置 单个IoTDA实例支持的设备CA证书数量。 100个 单个IoTDA实例支持的应用CA证书数量。 10个 应用侧API使用限制 单个账号调用单个API的每秒最大次数,具体API无特殊说明的,默认限制100/s。单个账号调用API的每秒最大次数:基础版、标准版:100/s、企业版请参考企业版规格。
  • 企业版规格 企业版规格如下表所示。 表3 企业版规格 实例规格 应用侧API调用频率配额限制(次/秒) 设备连接请求(次/秒) NB-IoT场景约束限制(次/秒) 实例类型 消息上下行TPS 同时在线设备数 总调用次数 下发设备消息 下发设备命令 查询设备影子数据 查询设备 MQTT/HTTP连接请求 NB设备消息上报 NB设备命令下发 企业版 1,000 10万-20万-50万-100万-200万-500万 200 100 50 100 50 500 100 50 企业版 2,000 10万-20万-50万-100万-200万-500万 400 200 100 200 100 500 200 100 企业版 5,000 10万-20万-50万-100万-200万-500万 800 400 200 400 200 1000 500 200 企业版 10,000 10万-20万-50万-100万-200万-500万 1600 800 400 800 400 1000 1000 400 企业版 20,000 10万-20万-50万-100万-200万-500万 3200 1600 800 1600 800 2000 2000 800 企业版 50,000 10万-20万-50万-100万-200万-500万 6000 3200 1600 3200 1600 3000 5000 1600 每秒钟服务端订阅推送和云服务产品数据流转消息条数的总和不超过设备消息上报并发上限,如有超过,需选购更高TPS的规格; 实例消息数超出上下行消息TPS规格后,超出的消息会被丢弃。 用于计算每秒设备上报消息数(TPS并发上限)的最大单消息大小为 4 KB,超过4KB的消息计算为新的一条或多条; 设备连接请求的最大并发能力是指系统全部资源独占用于建链处理时的能力,在有其他业务并行处理时(如消息上报)能力达不到最大值,但至少会保证20%的并发处理能力; 除上表所列的规格和配额限制外,其他企业版实例对于API的各项默认配额或限制,与基础版一致,请参考使用限制; 若上述规格或配额限制不能满足您的业务需求(比如您有海量NB-IoT场景诉求,需要更高的并发处理能力),请提交工单说明您的需求。
  • 标准版规格 标准版实例规格=实例单元类型*单个实例可购买的单元数 “标准版”规格 实例单元类型 同时在线设备数 每日消息数上限 消息上下行TPS 单个实例可购买单元数 免费单元S0 1,000个 10,000条 10TPS 1个 微频单元ST 10,000个*购买单元数量 400,000条*购买单元数量 10TPS*购买单元数量 1-100个 低频单元S1 10,000个*购买单元数量 4,000,000条*购买单元数量 200TPS*购买单元数量 1-100个 中频单元S2 10,000个*购买单元数量 40,000,000条*购买单元数量 1,000TPS*购买单元数量 1-100个 高频单元S3 10,000个*购买单元数量 150,000,000条*购买单元数量 3,000TPS*购买单元数量 1-100个 支持可注册设备数为在线设备数的20倍,覆盖设备全生命周期。 单个实例的消息上下行TPS峰值最高到10万TPS。比如实例包含100个S3,但TPS峰值最高只能到10万TPS; 微频单元数量少于10个时,消息上下行TPS为100TPS; 单个实例每秒最大建立请求连接数量为100*购买单元数量(最高3,000),同时不超过所购买实例规格的TPS数。 计算实例每日消息数上限的消息包括:设备和平台间的上行和下行消息,应用服务器调用平台API发送的消息和平台向服务器推送的消息,以及使用规则引擎转发到其他华为云产品的消息(当低于设备上报消息数时免费赠送,超过部分算入消息数,例如:1、上报100万条,流转110万条,消息数按110万条计算。2、上报100万条,流转90万条,消息数按100万条计算); 实例上下行消息TPS峰值:每秒设备上报到平台的消息和平台发送给设备的消息总和;纳入TPS峰值计算的最大单消息大小为 4 KB,超过4KB的消息计算为新的一条或多条; 实例消息数超出上下行消息TPS规格后,超出的消息会被丢弃。 除上表所列的实例规格和配额限制外,其他标准版实例对于API的各项默认配额或限制,请参考使用限制; 若上述规格或配额限制不能满足您的业务需求,请提交工单说明您的需求。
  • 基础版、标准版和企业版的对比 设备接入服务(IoTDA)提供基础版(共享实例)、标准版(标准实例)和企业版(专享实例)三种实例类型。开通设备接入服务后,默认开通基础版,按需付费使用,标准版和企业版需要您购买对应实例。详细差异请参考下表。 设备接入服务(IoTDA)计划于2023年1月1日起将原基础版升级为标准版免费单元,原基础版用户可继续使用基础版,新用户可直接使用标准版免费单元,支持平滑扩容至更高规格以及更多的服务组合能力。原基础版用户如需迁移至标准版可参考迁移指导。 表1 基础版、标准版与企业版实例差异 差异项 基础版(2023年1月1日前) 标准版 企业版 开通区域 华北-北京四 华北-北京四/华东-上海一/华南-广州/华南-广州-友好用户环境/中国-香港/亚太-新加坡/亚太-曼谷/非洲-约翰内斯堡 华北-北京四/华东-上海一/华南-广州 计费方式 按消息数使用量计费 按实例规格与使用时长计费 按实例规格与使用时长计费 计算隔离 多个租户共享统一的计算资源 实例隔离 完全独享 网络访问 提供统一的公网域名和IP对接 每个实例提供独立的公网接入域名,非独享设备连接层资源。 实例运行在租户独立的VPC中, 独立分配设备侧和应用侧对接的公网和私网IP,可按需放开公网或私网访问。 该实例独享设备连接层资源,使用独立服务器处理设备连接,进一步提高连接可靠性。 数据隔离 租户隔离,各个租户之间数据不共享 实例隔离,租户可购买多个实例,各个实例资源数据不共享 独享数据存储资源。 安全性 各租户统一的安全策略控制 实例级安全策略控制 可配置独立的安全策略和网络ACL规则,可自定义设备及应用服务器对接的协议端口,可仅开放VPC私网IP对接方式。 功能 基础的设备接入和设备管理功能 基础版能力基础上,提供更多扩展功能 基础的设备接入和设备管理功能,及扩展功能 支持更多的服务组合能力 支持行业解决方案集成适配 标准版能力基础上,支持更多独立VPC部署特有的功能(如私网专线对接等)。 性能规格 多租户共享平台整体并发能力 平台整体性能的弹性能力受限于可用资源情况 单实例可包含100个单元,最大支持10W峰值并发 可根据业务模型(每日消息总数和忙时峰值),配置更适合的实例规格 单实例支持10W并发,资源完全独占,不受其他租户影响 峰值并发可24小时全忙时运行,性能更强大 适用场景 小型企业客户,设备并发性能较低 提供灵活可配置的实例规格,适用于各类企业客户场景 中大型企业客户场景, 提供完全独享的实例,支持更高的并发能力, 具备更高的安全性和隔离性。 设备接入的基础版、标准版和企业版,它们之间在功能上的异同点如下表所示。 表2 基础版、标准版与企业版实例功能差异 特性分类 功能描述 基础版 标准版 企业版 说明 设备接入 原生协议/行业协议接入 √ √ √ - 协议插件方式接入私有协议 x x √ 支持云端加载协议插件支持私有协议接入 边云协同接入子系统 x 仅高频单元支持 √ 如园区项目中仅标准版高频单元和企业版支持通过IoT Edge接入子系统 设备接入鉴权 √ √ √ - 设备管理 设备生命周期管理 √ √ √ - 设备物模型定义 √ √ √ - 设备影子 √ √ √ - OTA升级 √ √ √ - 消息通信 双向消息透传 √ √ √ - 物模型Topic通信 √ √ √ - 数据解析转换 √ √ √ - 规则引擎 数据流转 √ √ √ 设备上报数据流转到其他云服务 规则联动 √ √ √ 设备联动规则 SQL数据流转规则 x √ √ 支持对数据先通过类SQL语句进行预处理 HTTP/AMQP订阅推送 √ √ √ - MQTT推送消息队列 x √ √ - 云服务流转 DIS数据接入服务 √ √ √ - OBS对象存储服务 √ √ √ - LTS云日志服务 √ √ √ - Kafka分布式消息服务 √ √ √ - RocketMQ分布式消息服务 x √ √ - ROMA Connect应用与数据集成平台 x x √ - FunctionGraph函数工作流服务 x √ √ - MRS Kafka流式集群 x x √ - MySQL数据库 x √ √ - InfluxDB时序数据库 x √ √ - BCS区块链服务 x x √ - MongoDB数据库 x x √ - 权限管理 子用户权限管理 √ √ √ 基于IAM的细粒度用户权限管理 分权分域 √ √ √ 基于资源空间的分权分域管理 公私网接入 公网接入 √ √ √ - 私网接入/专线对接 x x √ - 自定义接入端口 x x √ - IPV6接入 x √ √ 暂不支持NB-IoT设备,支持region为华北-北京四、华东-上海一、华南-广州。 性能规格 设备消息上报并发能力 单账号最大100TPS 单实例最大10万TPS 单实例最大10万TPS 可购买多个企业版实例,支持百万级并发 设备命令下发能力 单账号最大50TPS 单实例最大6000TPS 单实例最大6000TPS 有更高需求,请提交工单说明您的诉求
  • 基础概念 名词 描述 设备接入(IoTDA) 是华为云的物联网平台,提供海量设备连接上云、设备和云端双向消息通信、批量设备管理、远程控制和监控、OTA升级、设备联动规则等能力,并可将设备数据灵活流转到华为云其他服务,帮助物联网行业用户快速完成设备联网及行业应用集成。 资源空间 在物联网平台中为您的业务应用划分的一个资源空间,您在平台中创建的资源(如产品、设备等)都需要归属到某个资源空间,您可以基于资源空间实现多业务应用的分域管理,包括资源隔离和授权管理。 AppID 即资源空间ID(接口调用时参数名为app_id)作为资源空间的唯一标识。 ProjectID 项目ID,用于资源隔离,华为云的每个区域默认对应一个项目,这个项目由系统预置,用来隔离物理区域间的资源(计算资源、存储资源和网络资源),以区域默认项目为单位进行授权,IAM用户可以访问您账号中该区域的所有资源。 IAM IAM,统一身份认证服务(Identity and Access Management)提供身份认证和权限管理功能,可以管理用户(比如员工、系统或应用程序)账号,并且可以控制这些用户对您名下资源的操作权限。 订阅推送 订阅:是指应用服务器通过调用物联网平台的API接口,向平台获取发生变更的设备业务信息(如设备注册、设备数据上报、设备状态等)和管理信息(软固件升级状态和升级结果)。 推送:是指订阅成功后,物联网平台根据应用服务器订阅的数据类型,将对应的变更信息推送给指定的URL地址或AMQP消息队列。 AMQP 指高级队列消息协议(Advanced Message Queuing Protocol),一个提供统一消息服务的应用层标准高级消息队列协议,是应用层协议的一个开放标准,为面向消息的中间件设计。 产品 某一类具有相同能力或特征的设备的集合称为一款产品。帮助开发者快速进行产品模型和插件的开发,同时提供端侧集成、在线调试、自定义Topic等多种能力,端到端指引物联网开发,帮助开发者提升集成开发效率、缩短物联网解决方案建设周期。 产品ID 即productID,设备所属的产品ID,用于关联设备所属的产品模型。 产品模型 产品模型(也称Profile)用于描述设备具备的能力和特性。开发者通过定义产品模型,在物联网平台构建一款设备的抽象模型,使平台理解该款设备支持的服务、属性、命令等信息。 CoAP 受约束的应用协议CoAP(Constrained Application Protocol)是一种软件协议,旨在使非常简单的电子设备能够在互联网上进行交互式通信。 CoAPS指CoAP over DTLS,在CoAPS中使用DTLS协议进行加密传输。 LWM2M LWM2M(lightweight Machine to Machine)是由OMA(Open Mobile Alliance)定义的物联网协议,主要使用在资源受限(包括存储、功耗等)的NB-IoT终端。 MQTT MQTT(Message Queue Telemetry Transport)是一个物联网传输协议,被设计用于轻量级的发布/订阅式消息传输,旨在为低带宽和不稳定的网络环境中的物联网设备提供可靠的网络服务。 MQTTS指MQTT+SSL/TLS,在MQTTS中使用SSL/TLS协议进行加密传输。 编解码插件 物联网平台和应用服务器使用JSON格式进行通信,所以当设备使用二进制格式上报数据时,开发者需要在物联网平台上开发编解码插件,帮助物联网平台完成二进制格式和JSON格式的转换;当设备使用JSON格式上报数据时,开发者也可以开发对应的编解码插件,完成JSON格式之间的转换。 Topic Topic是UTF-8字符串,是发布/订阅(Pub/Sub)消息的传输中介。可以向Topic发布或者订阅消息。 服务 产品模型的一部分,描述设备具备的业务能力。将设备业务能力拆分成若干个服务后,再定义每个服务具备的属性、命令以及命令的参数。 属性 产品模型的一部分,一般用于描述设备运行时的状态,如环境监测设备所读取的当前环境温度等。 命令 设备的功能模型之一,设备能够被外部调用的能力或方法。 事件 设备的功能模型之一,设备运行时的事件。事件可以被订阅和推送。 设备 归属于某个产品下的设备实体,每个设备具有一个唯一的标识码。设备可以是直连物联网平台的设备,也可以是代理子设备连接物联网平台的网关。 设备ID 即deviceID,用于唯一标识一个设备,在注册设备时由物联网平台分配获得,是设备在IoT平台上的内部标识,用于设备接入时鉴权,及后续在网络中通过deviceId进行消息传递。 设备标识码 即nodeID,设备唯一物理标识,如IMEI、MAC地址等,用于设备在接入物联网平台时携带该标识信息完成注册鉴权。 设备CA证书 由国际知名的证书机构VeriSign、Symantec和GlobalSign等CA(Certification Authority)机构进行签发,用于HTTPS建链时服务端和客户端之间的身份合法性验证。 设备X.509证书 是一种用于通信实体鉴别的数字证书,创建认证方式为X.509证书的设备后,物联网平台为设备颁发对应的X.509证书。 模组 又称通信模组,由若干个显示模块、驱动电路、控制电路、芯片以及相应的结构件构成的一个独立的显示单元,设备通过通信模组具备与物联网平台的通信能力。当前模组厂商主要提供Wifi、NB-IoT、2G/3G/4G/5G等通信模组。 网关 具有子设备管理功能,并代理子设备直接连接物联网平台的设备。 子设备 不与IoT平台直连,通过网关连接物联网平台的设备。 预置密钥 当NB-IoT设备、集成SDK的设备接入时,预置密钥用于设备和物联网平台之间的传输通道安全加密。 密钥 用于设备采用原生MQTT协议接入物联网平台时的鉴权认证。 固件 固件(Firmware)一般是指设备硬件的底层“驱动程序”,承担着一个系统最基础最底层工作的软件,比如计算机主板上的基本输入/输出系统BIOS(Basic Input/output System)。 固件升级又称为FOTA(Firmware Over The Air),是指用户可以通过OTA的方式对支持LWM2M协议和MQTT协议的设备进行固件升级。例如,NB-IoT模组的升级称为固件升级。 软件 软件(Software)一般分为系统软件和应用软件,系统软件实现设备最基本的功能,比如编译工具、系统文件管理等;应用软件可以根据设备的特点,提供不同的功能,比如采集数据、数据分析处理等。 软件升级又称为SOTA(SoftWare Over The Air),是指用户可以通过OTA的方式支持对LWM2M协议和MQTT协议的设备进行软件升级。例如,MCU的升级称为软件升级。 PCP协议 平台升级协议(PCP协议)规定了设备和平台之间升级的通信内容与格式,用于实现设备的升级。 边缘节点 是物联网的边缘“小脑”,在靠近物或数据源头的边缘侧,融合网络、计算、存储、应用核心能力的开放平台,就近提供计算和智能服务,满足行业在实时业务、应用智能、安全与隐私保护等方面的基本需求。 群组 群组是一系列设备的集合,用户可以对应用下所有设备,根据区域、类型等不同规则进行分类建立群组,以便处理对海量设备的批量管理和操作。 标签 物联网平台支持定义不同的标签,并对设备打标签。 设备影子 设备影子是一个JSON文件,用于存储设备的在线状态、设备最近一次上报的设备属性、应用服务器期望下发的配置(期望值)。每个设备有且只有一个设备影子,设备可以获取和设置设备影子以此来同步状态,这个同步可以是影子同步给设备,也可以是设备同步给影子。 规则引擎 物联网平台根据用户设置的规则和设备上报的数据,当设备满足设置的条件时,即触发对应动作,给设备下发命令或将数据转发给公有云其他服务进行进一步整合利用。包含设备联动和数据转发两种类型。 token 鉴权参数,访问物联网平台API接口的凭证。应用服务器首次访问物联网平台的开放API时,需调用鉴权接口完成认证鉴权,获取X-Auth-Token。
  • 连接鉴权 MQTT.fx 是目前主流的MQTT桌面客户端,它支持 Windows, Mac, Linux,可以快速验证是否可以与设备发放服务进行连接并发布或订阅消息。 本文主要介绍 MQTT.fx 如何与华为设备发放交互,其中设备发放服务MQTT的南向接入地址请参考获取终端节点。 下载 MQTT.fx(默认是64位操作系统,如果是32位操作系统,单击此处下载 MQTT.fx ),安装MQTT.fx工具。 打开 MQTT.fx 客户端程序,单击“设置”。 填写 Connection Profile 相关信息和 General 信息。其中General 信息可以用工具默认的参数配置。 填写 User Credentials 信息。 其中Username 参考MQTT CONNECT连接鉴权参数说明(无需填写Password)。 注:注册组的场景不存在选择产品,所以命名需要注意:如果命名字符串有“_”,那么第一项必须为对应设备接入已经存在的产品ID,如果不包括“_”,那么可以随意命名。 选择开启 SSL/TLS,勾选Self signed certificates,配置相关证书内容。 CA File为设备发放对应的CA证书。 Client Certificate File为设备的设备证书。 Client Key File为设备的私钥。 完成以上步骤后,单击“Apply”和“OK”保存,并在配置文件框中选择刚才创建的文件名,单击“Connect”,当右上角圆形图标为绿色时,说明连接设备发放服务成功,可进行订阅(Subscribe)和消息推送(Publish)操作。
  • 制作CA证书 在浏览器中访问这里,下载并进行安装OpenSSL工具,安装完成后配置环境变量。 在 D:\certificates 文件夹下,以管理员身份运行cmd命令行窗口。 生成密钥对(rootCA.key): 生成“密钥对”时输入的密码在生成“证书签名请求文件”、“CA证书”,“验证证书”以及“设备证书”时需要用到,请妥善保存。 openssl genrsa -des3 -out rootCA.key 2048 使用密钥对生成证书签名请求文件: 生成证书签名请求文件时,要求填写证书唯一标识名称(Distinguished Name,DN)信息,参数说明如下表1 所示。 表1 提示 参数名称 取值样例 Country Name (2 letter code) []: 国家/地区 CN State or Province Name (full name) []: 省/市 GuangDong Locality Name (eg, city) []: 城市 ShenZhen Organization Name (eg, company) []: 组织机构(或公司名) Huawei Technologies Co., Ltd. Organizational Unit Name (eg, section) []: 机构部门 Cloud Dept. Common Name (eg, fully qualified host name) []: CA名称(CN) Huawei IoTDP CA Email Address []: 邮箱地址 / A challenge password []: 证书密码,如您不设置密码,可以直接回车 / An optional company name []: 可选公司名称,如您不设置,可以直接回车 / openssl req -new -key rootCA.key -out rootCA.csr 生成CA证书(rootCA.crt): openssl x509 -req -days 50000 -in rootCA.csr -signkey rootCA.key -out rootCA.crt “-days”后的参数值指定了该证书的有效天数,此处示例为50000天,您可根据实际业务场景和需要进行调整。
  • 上传并验证CA证书 登录设备发放控制台,进入“证书”界面,单击右上角“上传CA证书”,填写“证书名称”并上传上述“制作CA证书”步骤后生成的“CA证书(rootCA.crt文件)”,单击“确定”。 验证步骤1中上传的CA证书,只有成功验证证书后该证书方可使用。 为验证证书生成密钥对。 openssl genrsa -out verificationCert.key 2048 获取随机验证码。 利用此验证码生成证书签名请求文件CSR。 openssl req -new -key verificationCert.key -out verificationCert.csr CSR文件的Common Name (e.g. server FQDN or YOUR name) 需要填写前一过程中获取到的随机验证码。 使用CA证书、CA证书私钥和CSR文件创建验证证书(verificationCert.crt)。 openssl x509 -req -in verificationCert.csr -CA rootCA.crt -CAkey rootCA.key -CAcreateserial -out verificationCert.crt -days 500 -sha256 生成验证证书用到的“rootCA.crt”和“rootCA.key”这两个文件,为“制作CA证书”中所生成的两个文件。 “-days”后的参数值指定了该证书的有效天数,此处示例为500天,您可根据实际业务场景和需要进行调整。 上传验证证书进行验证。
  • 生成设备证书 使用OpenSSL工具为设备证书生成密钥对(设备私钥): openssl genrsa -out deviceCert.key 2048 使用设备密钥对,生成证书签名请求文件: openssl req -new -key deviceCert.key -out deviceCert.csr 生成证书签名请求文件时,要求填写证书唯一标识名称(Distinguished Name,DN)信息,参数说明如下表2所示。 表2 提示 参数名称 取值样例 Country Name (2 letter code) []: 国家/地区 CN State or Province Name (full name) []: 省/市 GuangDong Locality Name (eg, city) []: 城市 ShenZhen Organization Name (eg, company) []: 组织机构(或公司名) Huawei Technologies Co., Ltd. Organizational Unit Name (eg, section) []: 机构部门 Cloud Dept. Common Name (eg, fully qualified host name) []: CA名称(CN) Huawei IoTDP CA Email Address []: 邮箱地址 / A challenge password []: 证书密码,如您不设置密码,可以直接回车 / An optional company name []: 可选公司名称,如您不设置,可以直接回车 / 使用CA证书、CA证书私钥和CSR文件创建设备证书(deviceCert.crt)。 openssl x509 -req -in deviceCert.csr -CA rootCA.crt -CAkey rootCA.key -CAcreateserial -out deviceCert.crt -days 36500 -sha256 生成设备证书用到的“rootCA.crt”和“rootCA.key”这两个文件,为“制作CA证书”中所生成的两个文件,且需要完成“上传并验证CA证书”。 “-days”后的参数值指定了该证书的有效天数,此处示例为36500天,您可根据实际业务场景和需要进行调整。
共100000条