华为云用户手册

  • 变更实例规格 IoTDA实例创建成功后,您可以根据业务需要,升级实例规格,实例规格变更不会对业务产生影响。 访问 设备接入服务 ,单击“管理控制台 ”进入设备接入控制台。 选择左侧导航栏“IoTDA实例”,单击实例名称进入实例详情页面。 单击右上角的“变更配置”,根据您的业务需求,选择变更后的实例规格。 图3 实例管理-变更规格入口 可设置延迟生效,选定维护的时间窗口,将会在指定时间窗口内进行变更。 图4 实例管理-变更规格
  • MQTT协议固件升级流程 MQTT协议FOTA升级流程的详细说明: 1~2. 用户在设备接入服务的控制台上传固件包,并在控制台或者应用服务器上创建固件升级任务。 3. 平台感知设备是否在线,当设备在线时立即触发升级协商流程。当设备不在线时,等待设备上线订阅升级Topic,平台感知设备上线,触发升级协商流程。(等待设备上线时间25小时以内) 4~5. 平台向设备下发查询设备固件版本号的命令,查询成功后, 物联网平台 根据升级的目标版本判断设备是否需要升级 。(第5步超时时间3分钟) 如果返回的固件版本信息与升级的目标版本信息相同,则升级流程结束,不做升级处理,升级任务置为成功。 如果返回的固件版本信息与升级的目标版本信息不同,且该版本号支持升级,则继续进行下一步的升级处理。 6~7. 物联网平台下发设备侧升级包下载指导、token及包的相关信息,用户根据下载包URL和token通过HTTPS协议来下载软件包,24小时后token无效。(下载包和升级状态上报超时时间为24小时) 8. 终端设备进行下载包升级操作,升级完成后终端设备向物联网平台反馈升级的结果。(设备升级完成后返回的版本号和设置的版本一致为成功) 9. 物联网平台向控制台/应用服务器通知升级的结果。 在下载包中断的情况下,平台支持断点续传功能。
  • 固件升级失败原因 物联网平台上报的失败原因: 失败原因 原因解释 处理建议 Device Abnormal is not online 设备异常未在线 请检查设备侧。 Task Conflict 任务冲突 请检查当前设备是否有软件升级、固件升级、日志收集或设备重启的任务正在进行。 Waiting for the device online timeout 等待设备上线超时 请检查设备侧。 Wait for the device to report upgrade result timeout 等待设备上报升级结果超时 请检查设备侧。 Waiting for report device firmware version timeout 等待上报设备固件版本超时 请检查设备侧。 Waiting for report cellId timeout 等待上报cellId超时 请检查设备侧。 Updating timeout and query device version for check timeout 等待升级结果超时,且等待设备版本信息超时 请检查设备侧。 Waiting for device downloaded package timeout 等待设备完成下载固件包超时 请检查设备侧。 Waiting for device start to update timeout 等待设备启动更新超时 请检查设备侧。 Waiting for device start download package timeout 等到设备开始下载固件包超时 请检查设备侧。 设备上报的失败原因: 失败原因 原因解释 处理建议 Not enough storage for the new firmware package 下载的固件包存储空间不足 请检查设备存储。 Out of memory during downloading process 下载过程中内存不足 请检查设备内存。 Connection lost during downloading process 下载过程中连接断开 请检查设备连接状态。 Integrity check failure for new downloaded package 下载的固件包完整性校验失败 请检查设备下载的固件包是否完整。 Unsupported package type 固件包类型不支持 请检查设备状态和厂商提供的固件包是否正确。 Invalid URI URI不可用 检查设备侧的固件包下载地址是否正确。 Firmware update failed 固件更新失败 请检查设备侧。
  • MQTT协议设备软件升级流程 MQTT协议SOTA升级流程的详细说明: 1~2. 用户在设备管理服务的控制台上传软件包,并在控制台或者应用服务器上创建软件升级任务。 3. 平台感知设备是否在线,当设备在线时立即触发升级协商流程。当设备不在线时,等待设备上线订阅升级Topic,平台感知设备上线,触发升级协商流程。(等待设备上线时间25小时以内) 4~5. 平台向设备下发查询设备软件版本号的命令,查询成功后,物联网平台根据升级的目标版本判断设备是否需要升级 。(第5步超时时间3分钟) 如果返回的软件版本信息与升级的目标版本信息相同,则升级流程结束,不做升级处理,升级任务置为成功。 如果返回的软件版本信息与升级的目标版本信息不同,且该版本号支持升级,则继续进行下一步的升级处理。 6~7. 物联网平台下发下载包URL访问这里,token及包的相关信息,用户根据下载包URL和token通过HTTPS协议来下载软件包,24小时后token无效。(下载包和升级状态上报超时时间为24小时) 8. 终端设备进行下载包升级操作,升级完成后终端设备向物联网平台反馈升级的结果。(设备升级完成后返回的版本号和设置的版本一致为成功) 9. 物联网平台向控制台/应用服务器通知升级的结果。
  • LwM2M协议设备软件升级流程 LwM2M协议SOTA升级流程的详细说明: 1~2. 用户在设备管理服务的控制台上传软件包,并在控制台或者应用服务器上创建软件升级任务。 3. LwM2M设备上报数据,平台感知设备上线,触发升级协商流程。(超时时间为24小时) 4~5. 物联网平台向设备下发查询设备软件版本的命令,查询成功后,物联网平台根据升级的目标版本判断设备是否需要升级。(第4步等待设备上报软件版本,超时时间为3分钟) 如果返回的软件版本信息与升级的目标版本信息相同,则升级流程结束,不做升级处理。 如果返回的软件版本信息与升级的目标版本信息不同,则继续进行下一步的升级处理。 6. 物联网平台向设备订阅软件升级的状态。 7~8. 物联网平台查询终端设备所在的无线信号覆盖情况,获取小区ID、RSRP(Reference Signal Received Power,参考信号接收功率)和SINR(Signal to Interference Plus Noise Ratio,信号干扰噪声比)信息。(等待上报无线覆盖等级和小区ID,超时时间为3分钟左右) 查询成功:则根据如下方式计算可同时升级的并发数计算,并按照步骤10进行处理。 如下图所示,如果设备的RSRP强度和SINR强度均落在等级“0”中,则同时可以对该小区的50个相同信号覆盖区间的设备进行同时升级。 如果设备的RSRP强度和SINR强度分别落在等级“0”和“1”中,则以信号较弱的等级“1”为准,则只能同时对该小区的10个设备进行升级。 如果设备的RSRP强度和SINR强度分别落在等级“1”和“2”中,则以信号较弱的等级“2”为准,则只能同时对该小区的1个设备进行升级。 如果设备的RSRP强度和SINR强度不在该3个等级范围内,且均可以查询到,则按照信号最弱覆盖等级“2”处理,则只能同时对1个设备进行升级。 如果用户在软件升级中发现同时进行升级的设备数较少,则可以联系当地运营商检查和优化设备所在小区的无线覆盖情况。 查询失败:则按照流程9进行处理。 9. 物联网平台继续下发查询小区ID信息的命令,获取终端设备所在的小区ID信息。 如果查询成功:物联网平台支持同时对该小区的10个相同情况的设备进行软件升级。 如果查询失败:则升级失败。 10~12. 物联网平台通知设备有新的软件包版本,设备启动软件包的下载。软件包的下载按照分片的方式进行下载,支持断点续传功能,通过软件包分片中携带的“versionCheckCode”确定是否属于同一个软件包。下载完成后,设备知会物联网平台软件包已下载完毕。(第11步超时时间为60分钟) 13~14. 物联网平台向设备下发升级的命令,终端设备进行升级操作,升级完成后终端设备向物联网平台反馈升级的结果。(等待设备上报升级结果和升级状态,超时时间为30分钟) 15. 物联网平台向控制台/应用服务器通知升级的结果。
  • 固件升级失败原因 物联网平台上报的失败原因: 失败原因 原因解释 处理建议 Device Abnormal is not online 设备异常未在线 请检查设备侧。 Task Conflict 任务冲突 请检查当前设备是否有软件升级、固件升级、日志收集或设备重启的任务正在进行。 Waiting for the device online timeout 等待设备上线超时 请检查设备侧。 Wait for the device to report upgrade result timeout 等待设备上报升级结果超时 请检查设备侧。 Waiting for report device firmware version timeout 等待上报设备固件版本超时 请检查设备侧。 Waiting for report cellId timeout 等待上报cellId超时 请检查设备侧。 Updating timeout and query device version for check timeout 等待升级结果超时,且等待设备版本信息超时 请检查设备侧。 Waiting for device downloaded package timeout 等待设备完成下载固件包超时 请检查设备侧。 Waiting for device start to update timeout 等待设备启动更新超时 请检查设备侧。 Waiting for device start download package timeout 等到设备开始下载固件包超时 请检查设备侧。 设备上报的失败原因: 失败原因 原因解释 处理建议 Not enough storage for the new firmware package 下载的固件包存储空间不足 请检查设备存储。 Out of memory during downloading process 下载过程中内存不足 请检查设备内存。 Connection lost during downloading process 下载过程中连接断开 请检查设备连接状态。 Integrity check failure for new downloaded package 下载的固件包完整性校验失败 请检查设备下载的固件包是否完整。 Unsupported package type 固件包类型不支持 请检查设备状态和厂商提供的固件包是否正确。 Invalid URI URI不可用 检查设备侧的固件包下载地址是否正确。 Firmware update failed 固件更新失败 请检查设备侧。
  • LwM2M协议设备固件升级流程 LwM2M协议FOTA升级流程的详细说明: 1~2. 用户在设备接入服务的控制台上传固件包,并在控制台或者应用服务器上创建固件升级任务。 3. LwM2M设备上报数据,平台感知设备上线,触发升级协商流程。(超时时间为24小时) 4~5. 物联网平台向设备下发查询设备固件版本的命令,查询成功后,物联网平台根据升级的目标版本判断设备是否需要升级。(第4步等待设备上报固件版本,超时时间为3分钟) 如果返回的固件版本信息与升级的目标版本信息相同,则升级流程结束,不做升级处理。 如果返回的固件版本信息与升级的目标版本信息不同,则继续进行下一步的升级处理。 6~7. 物联网平台查询终端设备所在的无线信号覆盖情况,获取小区ID、RSRP(Reference Signal Received Power,参考信号接收功率)和SINR(Signal to Interference Plus Noise Ratio,信号干扰噪声比)信息。(等待上报无线覆盖等级和小区ID,超时时间为3分钟左右) 查询成功:则根据如下方式计算可同时升级的并发数计算,并按照步骤9进行处理。 如下图所示,如果设备的RSRP强度和SINR强度均落在等级“0”中,则同时可以对该小区的50个相同信号覆盖区间的设备进行同时升级。 如果设备的RSRP强度和SINR强度分别落在等级“0”和“1”中,则以信号较弱的等级“1”为准,则只能同时对该小区的10个设备进行升级。 如果设备的RSRP强度和SINR强度分别落在等级“1”和“2”中,则以信号较弱的等级“2”为准,则只能同时对该小区的1个设备进行升级。 如果设备的RSRP强度和SINR强度不在该3个等级范围内,且均可以查询到,则按照信号最弱覆盖等级“2”处理,则只能同时对1个设备进行升级。 如果用户在固件升级中发现同时进行升级的设备数较少,则可以联系当地运营商检查和优化设备所在小区的无线覆盖情况。 查询失败:则按照流程步骤8进行处理。 8. 物联网平台继续下发查询小区ID信息的命令,获取终端设备所在的小区ID信息。 如果查询成功:物联网平台支持同时对该小区的10个相同情况的设备进行固件升级。 如果查询失败:则升级失败。 9. 物联网平台向设备订阅固件升级的状态。 10~11. 物联网平台向设备下发下载固件包的URL地址,通知设备下载固件包。终端设备根据该URL地址下载固件包,固件包的下载支持分片下载,下载完成后,设备知会物联网平台固件包已下载完毕。(第11步超时时间为60分钟) 12~13. 物联网平台向设备下发升级的命令,终端设备进行升级操作,升级完成后终端设备向物联网平台反馈升级结束。(等待设备上报升级结果和升级状态,超时时间为30分钟) 14~16. 物联网平台下发命令查询固件升级的结果,获取升级结果后,向终端设备取消订阅升级状态通知,并向控制台应用服务器通知升级的结果。 在下载包中断的情况下,平台支持断点续传功能。
  • 设备发放业务流程 设备启动后,通过Bootstrap流程(设备出厂时预置设备发放平台地址作为引导服务器地址),引导物联网设备在初次上电时获得正确的目标物联网平台地址,继而完成设备与平台的建链过程。保证设备安全可靠的按业务目标上线,最大程度上减少人为干预的错误可能。 流程如下: 首先确认用户是否开通设备接入服务(物联网平台)。 在设备发放平台创建设备的发放清单(包括预注册设备以及添加发放策略)。 设备出厂时预置设备发放平台地址,设备上电后,设备发放服务通过使用标准 X.509证书验证或者根据设备密钥验证设备的标识,把设备发放到对应的设备接入平台。 设备发放将设备接入平台连接信息返回给设备。 设备通过收到的设备接入平台连接信息连接到设备接入平台。 父主题: 产品介绍
  • 转发方式概述 设备接入到物联网平台后,便可与物联网平台进行通信。设备通过自定义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和智能设备之间进行消息通信。 设备联动,设备间进行数据传输与消息通信。 实现设备间通信 请参考设备间消息通信概述。 父主题: 数据转发至第三方应用
  • 和其他服务的关系 设备发放服务与其他服务的关系如表1所示。 表1 与其他服务的关系列表 交互功能 相关服务 位置 创建设备时,需要使用设备接入服务创建的产品 设备接入服务(IoT Device Access,IoTDA) 创建产品 创建自定义策略时需要使用函数 函数工作流 服务(FunctionGraph) 创建并初始化函数 创建证书策略使用云证书时,需要去 云证书管理服务 创建云证书 云证书管理 服务(Cloud Certificate Manager Service,CCM) 创建私有CA 父主题: 产品介绍
  • 约束与限制 使用自定义鉴权功能,要求设备必须使用TLS同时支持SNI(Server Name Indication),SNI中需要携带平台分配的 域名 。 默认每个用户最多支持5个自定义鉴权模板,只能启用一个激活状态的模板。 鉴权模板函数嵌套最大深度为5层。 模板内容体最大长度不能超过4000字符,且不能包含中文字符。 设备为密钥认证类型时,模板密码函数必须包含设备原始密钥参数(iotda::device::secret)。 使用模板鉴权时,鉴权参数username不能与自定义函数鉴权username格式重叠,否则会使用自定义函数鉴权,比如: {deviceId}|authorizer-name={authorizer-name}|xxx 自定义模板鉴权优先级高于平台默认鉴权,即激活自定义鉴权模板后设备就会使用模板鉴权,不会再使用平台默认鉴权方式。
  • 参数说明 表1 设备发放参数说明列表 参数 必选/可选 类型 参数描述 clientId 必选 String(256) 注册组选择非华为云证书场景: 设备clientId由3个部分组成:设备ID、设备身份标识类型、用户标识ID(ScopeID)。通过下划线“_”分隔,设备身份标识类型固定值为0 例:5f052ac562369102d42b0fb6_0_ff5bbx7a488f 其他场景: 设备clientId由4个部分组成:设备ID、设备身份标识类型、密码签名类型、时间戳。通过下划线“_”分隔,设备身份标识类型固定值为0 密码签名类型:长度1字节,当前支持2种类型: “0”代表HMA CS HA256不校验时间戳。 “1”代表HMACSHA256校验时间戳。 时间戳:为设备连接平台时的UTC时间,格式为YYYYMMDDHH,如UTC 时间2018/7/24 17:56:20 则应表示为2018072417。 例:5f052ac562369102d42b0fb6_0_0_2019122614 Username 必选 String(256) 设备ID。 Password 必选 String(256) Password的值为使用“HMACSHA256”算法以时间戳为密钥,对secret进行加密后的值(secret为注册设备时平台返回的secret)。 当设备认证类型使用密钥认证接入(SECRET)需填写“Password”,证书认证接入(CERTIFICATES)不需填写“Password”。 注:ScopeID可以在设备发放页面点击注册组查询,如下图所示。 设备通过MQTT协议的connect消息进行鉴权,对于构造clientId的各个部分信息都必须包括进去,平台收到connect消息时,会判断设备的鉴权类型和密码摘要算法。 当采用“HMACSHA256”校验时间戳方式时,会先校验消息时间戳与平台时间是否一致,再判断密码是否正确。 当采用“HMACSHA256”不校验时间戳方式时,鉴权消息也必须带时间戳,但不检验时间是否准确,仅判断密码是否正确。 connect消息鉴权失败时,平台会返回错误,并自动断开MQTT链路。 访问参数生成工具,填写注册设备后生成的设备ID(DeviceId)和密钥(DeviceSecret),生成设备连接鉴权所需的参数(ClientId、Username、Password)。
  • 接口功能 设备发放平台设备侧支持MQTT协议的connect消息接口,接口规范参考MQTT标准规范,鉴权通过后建立设备与平台间的MQTT连接。 设备发放平台目前只支持MQ TTS 接入,设备通过connect消息接口和平台建立MQTT连接时,需要使用服务端CA证书验证服务端证书。服务端CA证书单击huaweicloud-iot-root-ca-list获取证书文件压缩包。 根据您使用的工具或语言取用压缩包内的证书文件: IoT Device SDK(C/C#)、MQTT.fx工具:使用压缩包中c目录下以pem或crt为后缀的文件; IoT Device SDK(Java):使用压缩包中java目录下以jks为后缀的文件; IoT Device SDK(Android):使用压缩包中android目录下以bks为后缀的文件。
  • 连接鉴权 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 和Password 参数参考MQTT CONNECT连接鉴权参数说明。 选择开启 SSL/TLS,勾选CA certificate file,CA Certificate File指定为物联网平台根证书(请先下载物联网平台的根证书,解压后,选择其中c或java目录下PEM后缀的文件)的本地路径。 完成以上步骤后,单击“Apply”和“OK”保存,并在配置文件框中选择刚才创建的文件名,单击“Connect”,当右上角圆形图标为绿色时,说明连接设备发放服务成功,可进行订阅(Subscribe)和消息推送(Publish)操作。
  • Topic说明 设备发放平台作为消息接收方时,已默认订阅了相关Topic,设备只要向对应Topic发送消息,设备发放平台就可以接收。 设备作为消息接收方时,需要先订阅相关Topic,这样设备发放平台向对应Topic发送消息时,设备才能接收到。设备需要根据具体实现的业务来决定订阅哪些Topic。 表1 设备发放Topic Topic 消息发送方 (Publisher) 消息接收方 (Subscriber) 说明 $oc/devices/{device_id}/sys/bootstrap/up 设备 设备发放平台 设备向发放服务请求对应设备接入实例的引导信息。 $oc/devices/{device_id}/sys/bootstrap/down 设备发放平台 设备 设备接收发放服务下发的引导信息。
  • 场景示例矩阵 表2 示例列表 注册/注册组 认证类型 策略类型 示例 注册 证书认证 证书策略 MQTT X.509证书认证设备使用证书策略发放示例 注册 密钥认证 静态策略 MQTT 密钥设备使用静态策略发放示例 注册组 证书认证 自定义策略 MQTT 注册组自定义策略发放示例 注册组 云证书认证 证书策略 MQTT 华为云证书注册组发放示例 注册组 证书认证 自定义策略 MQTT 注册组自定义策略发放示例 注册 密钥认证 静态策略(跨账号) MQTT 密钥设备跨账号使用静态策略发放示例
  • MQTT概述 MQTT标准规范参见《mqtt-v3.1.1-os.pdf》。 MQTT的语法和接口细节,请以此标准为准。设备发放目前仅支持MQTTS/HTTPS这种安全接入的设备进行发放,暂不支持MQTT/HTTP这种非安全接入的设备进行发放。 MQTT消息分为固定报头(Fixed header)、可变报头(Variable header)和有效载荷(Payload)部分。 固定报头(Fixed header)和可变报头(Variable header)格式的填写直接MQTT标准规范。有效载荷(Payload)部分在PUB消息中可以由应用定义,即设备和设备发放平台之间自己定义。 下面主要介绍CONNECT、SUB和PUB消息格式的填写。 CONNECT - Client requests a connection to a server 有效载荷(Payload)中的主要参数填写,具体参见MQTT CONNECT连接鉴权。 SUBSCRIBE - Subscribe to named topics 有效载荷(Payload)中的主要参数填写:Topic name,填写为设备想要订阅的主题消息,目前填写为设备自己的topic,具体参见Topic说明。 PUBLISH - Publish message 可变报头(Variable header):Topic name,设备发往设备发放平台时,为平台的Topic name,设备接收消息时,为设备的Topic name,具体参见Topic说明。 有效载荷(Payload)中的主要参数填写:为完整的数据上报和命令下发的消息内容,目前是一个JSON对象。
  • 使用 自定义镜像 创建训练作业(Ascend) 如果Ascend-Powered-Engine预置镜像无法满足您的需求,您可以构建一个自定义镜像,通过自定义镜像创建训练作业。Ascend自定义镜像训练作业创建流程与CPU/GPU一致,但是需要额外关注: Ascend HCCL RANK_TABLE_FILE文件说明 Ascend HCCL RANK_TABLE_FILE文件提供Ascend分布式训练作业的集群信息,用于Ascend芯片分布式通信,可以被HCCL集合通信库解析。该文件格式有两个版本,分别为模板一、模板二。当前ModelArts提供的是模板二格式。 ModelArts训练环境的Ascend HCCL RANK_TABLE_FILE文件名为jobstart_hccl.json。获取方式参考表1 。 ModelArts训练环境jobstart_hccl.json文件内容(模板二)示例 { "group_count": "1", "group_list": [{ "device_count": "1", "group_name": "job-trainjob", "instance_count": "1", "instance_list": [{ "devices": [{ "device_id": "4", "device_ip": "192.1.10.254" }], "pod_name": "jobxxxxxxxx-job-trainjob-0", "server_id": "192.168.0.25" }] }], "status": "completed" } jobstart_hccl.json文件中的status字段的值在训练脚本启动时,并不一定为completed状态。因此需要训练脚本等待status字段的值等于completed之后,再去读取文件的剩余内容。 如果算法开发者期望使用模板一格式的jobstart_hccl.json文件,可以使用训练脚本,在等待status字段的值等于completed之后,将模板二格式jobstart_hccl.json文件转换为模板一格式的jobstart_hccl.json文件。 转换后的jobstart_hccl.json文件格式(模板一)示例 { "server_count": "1", "server_list": [{ "device": [{ "device_id": "4", "device_ip": "192.1.10.254", "rank_id": "0" }], "server_id": "192.168.0.25" }], "status": "completed", "version": "1.0" } 转换功能的实现,可参考示例:从 0 到 1 制作自定义镜像并用于训练(MindSpore+Ascend)中所述的Ascend训练脚本的启动脚本。 RANK_TABLE_FILE环境变量 表1 RANK_TABLE_FILE环境变量说明 环境变量 说明 RANK_TABLE_FILE 该环境变量指示Ascend HCCL RANK_TABLE_FILE文件所在目录,值为/user/config。 算法开发者可通过 “${RANK_TABLE_FILE}/jobstart_hccl.json”,路径获取该文件。 父主题: 使用自定义镜像训练模型(模型训练)
  • RDS for SQL Server添加链接服务器 sql server数据库实例2创建链接服务器访问另外一个sql server数据库实例1。 开启两个实例的分布式事务,请参考开启分布式事务,并且互相加入对端的host信息。线下服务器或ECS服务器请参考远程服务器上的名称解析。 sql server数据库实例2和sql server数据库实例1已经在相同VPC内;若ECS与RDS不在相同VPC或者RDS与线下实例建立分布式请通过EIP进行连接,请参考绑定弹性公网IP为RDS实例绑定EIP。 在rds实例1中使用rdsuser创建数据库dbtest1。 在rds实例2中使用rdsuser运行如下sql创建链接服务器。 USE [master] GO EXEC master.dbo.sp_addlinkedserver @server = N'TEST_SERVERNAME', @srvproduct=N'SQL Server', @provider=N'SQLOLEDB', @datasrc=N'192.168.***.***,1433' EXEC master.dbo.sp_addlinkedsrvlogin @rmtsrvname = N'TEST_SERVERNAME', @locallogin = NULL , @useself = N'false', @rmtuser = N'rdsuser', @rmtpassword = N'********' GO 表1 参数说明 参数 说明 @server 链接服务器名称。 @srvproduct 数据源的产品名称。使用默认值SQL Server。 @provider 使用该默认值。 @datasrc 要访问的实例IP和端口。 @rmtsrvname 链接服务器名称。 @locallogin 本地服务器上的登录名。默认值NULL即可。 @useself 是否通过模拟本地登录名或登录名和密码连接到链接服务器。此处填false,表示通过登录名和密码连接到链接服务器。 @rmtuser 用户名(rdsuser)。 @rmtpassword 用户密码。 建立dblink之后,在链接服务器中就可以看到rds实例1中建立的库。 使用如下SQL查看是否插入成功,结果如图1所示。 begin tran set xact_abort on INSERT INTO [LYNTEST].[dbtest1].[dbo].[user1] ([id],[lname],[rname]) VALUES('19','w’,'x') GO commit tran 图1 插入结果 父主题: RDS for SQL Server
  • 订阅使用限制 为了确保使用Failover Slot,必须在发布端手工创建逻辑复制槽(Failover Slot),并通过create_slot = false关联已有复制槽,如下: CREATE SUBSCRIPTION sub1 CONNECTION 'host=192.168.0.1 port=5432 user=user1 dbname=db1' PUBLICATION pub_name with (create_slot = false,slot_name = FailoverSlot_name); 逻辑复制不会复制DDL变更,因此发布集中的表必须已经存在于订阅端上。 同一个数据库中,可以创建多个subscription,这些subscription可以来自一个或多个发布者。 订阅者的同一张表,不能接受来自同一个源的多个发布。 在创建subscription或者alter subscription时,可以使用enable来启用该订阅,或者使用disable暂停该订阅。 如果要完全删除订阅,使用DROP SUBSCRIPTION,注意,删除订阅后,本地的表不会被删除,数据也不会清除,仅仅是不在接收该订阅的上游信息。 如果订阅与复制槽相关联,就不能在事务块内部执行DROP SUBSCRIPTION。可以使用ALTER SUBSCRIPTION取消关联复制槽。 删除订阅可参考以下步骤: 在订阅端查询订阅关联的的复制槽。 select subname,subconninfo,subslotname from pg_subscription where subname = 'sub2'; subname为订阅者名称。 subconninfo为连接远程主机信息。 subslotname 为远程主机复制槽名称。 在订阅端执行ALTER SUBSCRIPTION取消关联复制槽并删除。 ALTER SUBSCRIPTION subname SET (slot_name = NONE); DROP SUBSCRIPTION subname; 在发布端删除关联的复制槽。 select pg_drop_replication_slot(' slot_name);
  • 语法参考 发布 CREATE PUBLICATION用于创建发布,DROP PUBLICATION用于移除发布,ALTER PUBLICATION用于修改发布。 发布创建之后,可以通过ALTER PUBLICATION动态地向发布中添加或移除表,这些操作都是事务性的。 订阅 CREATE SUBSCRIPTION用于创建订阅,DROP SUBSCRIPTION用于移除订阅,ALTER SUBSCRIPTION用于修改订阅。 订阅创建之后,可以通过ALTER SUBSCRIPTION随时暂停与恢复订阅。移除并重建订阅会导致同步信息丢失,这意味着相关数据需要重新进行同步。 具体使用说明请参考以下官方文档,以PostgreSQL 13版本为例: 创建发布:https://www.postgresql.org/docs/13/sql-createpublication.html 删除发布:https://www.postgresql.org/docs/13/sql-droppublication.html 修改发布:https://www.postgresql.org/docs/13/sql-alterpublication.html
  • 逻辑定义 发布可以被定义在任何物理复制的主服务器上。定义有发布的节点被称为发布者。发布是从一个表或者一组表生成的改变的集合,也可以被描述为更改集合或者复制集合。每个发布都只存在于一个数据库中。 订阅是逻辑复制的下游端。订阅被定义在其中的节点被称为订阅者。一个订阅会定义到另一个数据库的连接以及它想要订阅的发布集合(一个或者多个)。逻辑订阅者的行为与一个普通的PostgreSQ L实例 (主库)无异,逻辑订阅者也可以创建自己的发布,拥有自己的订阅者。
  • 发布使用限制 发布目前只能包含表(即:索引,序列号,物化视图这些不会被发布),每个表可以添加到多个发布中。 一个publication允许有多个订阅者。 允许使用all tables发布所有表。 在同一个数据库中,可以创建多个publication,但是不能重名。已创建的publication可以通过查询pg_publication获取。 发布可以筛选所需的变更类型:包括insert、update、delete 和truncate的任意组合,类似触发器事件,默认所有变更都会被发布。 例如:发布表t1的update和delete操作。 CREATE PUBLICATION update_delete_only FOR TABLE t1 WITH (publish = 'update, delete') ; 复制标识:当发布了表的update, delete时,表必须设置复制标识(Replica Identity),如果设置了nothing,则执行update, delete时会报错。 表上的复制标识可以通过查阅pg_class.relreplident获取。 这是一个字符类型的“枚举”,标识用于组装 “复制标识” 的列:d = default ,f = 所有的列,i 使用特定的索引,n 没有复制标识。 表上是否具有可用作复制标识的索引约束,可以通过以下查询获取: SELECT quote_ident(nspname) || '.' || quote_ident(relname) AS name, con.ri AS keys, CASE relreplident WHEN 'd' THEN 'default' WHEN 'n' THEN 'nothing' WHEN 'f' THEN 'full' WHEN 'i' THEN 'index' END AS replica_identity FROM pg_class c JOIN pg_namespace n ON c.relnamespace = n.oid, LATERAL (SELECT array_agg(contype) AS ri FROM pg_constraint WHERE conrelid = c.oid) con WHERE relkind = 'r' AND nspname NOT IN ('pg_catalog', 'information_schema', 'monitor', 'repack', 'pg_toast') ORDER BY 2,3; 复制标识配置 表到复制标识可以通过ALTER TABLE进行修改。 ALTER TABLE table_name REPLICA IDENTITY { DEFAULT | USING INDEX index_name | FULL | NOTHING }; -- 具体有四种形式 ALTER TABLE t_normal REPLICA IDENTITY DEFAULT; -- 使用主键,如果没有主键则为FULL ALTER TABLE t_normal REPLICA IDENTITY FULL; -- 使用整行作为标识 ALTER TABLE t_normal REPLICA IDENTITY USING INDEX t_normal_v_key; -- 使用唯一索引 ALTER TABLE t_normal REPLICA IDENTITY NOTHING; -- 不设置复制标识 复制标识在实际使用中的注意事项 表上有主键,使用默认的default复制标识。 表上没有主键,但是有非空唯一索引,显式配置index复制标识。 表上既没有主键,也没有非空唯一索引,显式配置full复制标识(运行效率非常低,仅能作为兜底方案)。 其他所有情况,都无法正常完成逻辑复制功能。输出的信息不足,可能会报错。 特别需要注意:如果nothing复制标识的表纳入到逻辑复制中,对其进行删改会导致发布端报错。
  • 约束条件 主实例和灾备实例状态正常,主实例和灾备实例在不同云或不同区域上,且主实例为主备实例,灾备实例为单机实例。 主实例配置容灾能力成功后才能配置灾备实例容灾能力,否则容灾关系会建立失败。 灾备实例的规格要大于等于主实例的规格。 RDS for PostgreSQL 12及以上支持建立跨云或跨区域容灾关系。 不支持跨大版本建立跨云或跨区域容灾关系。 主实例和灾备实例的容灾关系已建立完成,才能进行灾备实例升主和查询容灾复制状态。 实施前确认需要搭建的主实例和灾备实例所在区域,处于云连接/虚拟专有网络服务已上线区域内。 灾备实例不支持PITR恢复和CBR快照备份功能,如需使用此功能,请在主实例上完成。
  • 实现原理 RDS for PostgreSQL跨区域容灾实现原理说明: 在两个数据中心独立部署RDS for PostgreSQL实例,通过RDS接口将生产中心RDS for PostgreSQL库中的数据同步到灾备中心RDS for PostgreSQL库中,实现RDS for PostgreSQL主实例和跨区域灾备实例之间的实时同步。使用该功能前,必须需要确认可以使用云连接服务完成跨区域网络连通。 图1 原理图
  • 操作步骤 查询带宽使用率。 查询实例在指定时段的带宽使用率。具体操作请参见查看监控数据。 通常来说,“网络瞬时输入流量”和“网络瞬时输出流量”快速上升,并持续大于实例最大带宽的80%时,需引起注意,可能流量不足。 需关注的监控指标为带宽使用率如下图。带宽使用率的计算公式:带宽使用率=(网络瞬时输入流量+网络瞬时输出流量)/(2*最大带宽限制) * 100%。 图1 带宽使用率示例 其中,带宽使用率超过100%,不一定导致限流,有没有被流控需要看流控次数指标。 带宽使用率没有超过100%,也有可能有限流,因为带宽使用率是上报周期实时值,一个上报周期检查一次。流控检查是秒级的,有可能存在上报周期间隔期间,流量有秒级冲高,然后回落,待上报带宽使用率指标时已恢复正常。 优化带宽使用率。 当业务的访问量与预期带宽消耗不匹配,例如带宽使用率的增长趋势和QPS的增长趋势明显不一致(可结合网络瞬时输入流量和网络瞬时输出流量,分析业务是读业务和还是写业务导致的流量上涨)。对于单个节点带宽使用率上涨,您可以通过缓存分析功能,发现实例中存在的大Key,具体操作请参见大key分析。对大Key(通常大于10 KB)进行优化,例如将大Key拆分、减少对大Key的访问、删除不必要的大Key等。 经过上述步骤优化后流量使用率依旧较高,可评估升级至更大内存的规格,以承载更大的网络流量。具体操作请参见变更实例规格。也可以单独购买实例带宽,请参考调整DCS实例带宽。 在正式升级实例的规格前,您可以先购买一个按需付费的实例,测试要升级到的目标规格是否能够满足业务的负载需求,测试完成后可将其释放。释放实例请参考删除实例。
  • 忘记账号密码 在华为账号登录页面,单击“忘记密码”。 图3 忘记华为账号密码 输入账号名或注册账号的手机号/邮件地址,单击“下一步”。 图4 输入信息 如果您在2输入了注册账号的账号名/手机号/邮件地址,选择获取验证码。 如果无法接收验证码,请参考无法获取验证码进行处理。 找回密码的账号手机号/邮件地址不可用时,请联系人工客服获取帮助:中国大陆+864000955988、中国香港+852800931122,或提交工单。 按照界面提示填写验证信息,单击“下一步”。 按照页面提示,输入新密码并确认密码,单击“确定”。 由于华为账号涉及多项业务领域,如华为账号无法按照以上步骤找回时,建议您参考以下链接进行找回: https://consumer.huawei.com/cn/support/content/zh-cn15774338/ 单击“立即返回”,使用新设置的密码登录华为云。
  • 上传静态网站文件 整理好待上传的静态网站文件,在OBS控制台重复执行以下步骤,直至所有的静态网站文件都上传至准备工作创建的桶中。 在支持批量上传的区域,OBS控制台每次最多支持100个文件同时上传,总大小不超过5GB,如果网站文件较多,建议使用OBS Browser+上传,具体操作步骤请参见使用OBS Browser+上传文件或文件夹。 单击待操作的桶名称,进入桶对象页面。 单击“上传对象”,系统将弹出如下所示对话框。 图1 上传对象 添加待上传的文件。 不可加密上传静态网站文件。 存储类别建议选择“标准”。如果静态网站文件的存储类别为“归档存储”,则需要先恢复才能被访问,具体恢复步骤请参见恢复归档存储文件。 网站首页文件(index.html)和404错误页面(error.html),需要存放在桶的根目录下。 单击“上传”完成文件上传。 父主题: 实施步骤
  • 创建和配置域名托管 为了方便对您的自定义域名和静态网站统一管理,实现业务全面云化,您可以直接在华为云提供的云解析服务(Domain Name Service,DNS)上托管您的自定义域名。托管完成后,后续域名解析的管理都可以在云解析服务上进行,包括:管理记录集、管理反向解析、设置域名泛解析等等。 您也可以直接在域名注册商域名解析中,根据是否开启 CDN加速 来添加一条别名记录。 如果绑定自定义域名时开启了CDN加速,则添加的别名记录需指向CDN提供的加速域名。例如:域名“www.example.com”开启CDN加速后的加速域名为“www.example.com.c.cdnhwc1.com”,则需要在域名注册商添加一条值为“www.example.com CNAME www.example.com.c.cdnhwc1.com”的记录。 如果绑定自定义域名时未开启CDN加速,则添加的别名记录需指向桶的访问域名。例如:桶“example”所处区域“华北-北京一”,则需要在域名注册商添加一条值为“www.example.com CNAME example.obs.cn-north-1.myhuaweicloud.com”的记录。 使用云解析服务创建和配置域名托管的操作步骤如下: 创建公网域名。 在云解析服务中创建公网域名,使用准备工作中注册的根域名“example.com”作为创建公网域名。详细的创建方法请参见配置网站解析章节中的“添加域名”部分内容。 添加别名记录。 在云解析服务中为托管域名子域名“www.example.com”添加记录集,配置该子域名别名指向OBS的静态网站托管域名。在添加别名记录时参数配置如下: 主机记录:输入“www”。 类型:选择“CNAME – 将域名指向另外一个域名”。 线路类型:选择“全网默认”。 TTL(秒):保持默认。 值:需指向的域名。如果绑定自定义域名时没有开启CDN加速,此处填写OBS的桶的静态网站托管域名;如果开启了CDN加速,此处填写CDN提供的加速域名(即CNAME)。 详细的创建方法请参见增加CNAME类型记录集。 在域名注册商处修改域名解析服务器地址。 在域名注册商处,将该根域名对应的NS记录中域名解析服务器地址修改为云解析服务(DNS)服务器的地址,具体地址为云解析服务中该公网域名记录集中NS记录的值字段内容信息。 详细的更改域名解析服务器地址的方法请参见配置网站解析章节中的“更改域名的DNS服务器”部分。 更改后的域名解析服务器地址将于48小时内生效,具体生效时间请以域名注册商处的说明为准。 父主题: 实施步骤
  • 配置自定义域名 单击桶名称进入“对象”页面,在左侧导航栏选择“域名管理”。 单击页面上方的“配置自定义域名”,如果没有绑定自定义域名也可以在页面下方的配置自定义域名卡片中单击“配置自定义域名”,在“用户域名”输入“www.example.com”,如下所示。 图1 配置自定义域名 单击“确定”。 根据页面提示,支持单击“一键解析”,或手动完成解析CNAME,单击右下角的“我已了解”,如图2所示。 华为云域名支持一键解析添加CNAME记录;非华为云域名不支持一键解析,请用户自行配置解析规则。 图2 解析CNAME (可选)配置CDN加速。 CDN加速需收费,具体请参见CDN价格说明。 在已绑定的自定义域名操作列,单击“开启加速”。 根据您的业务情况选取对应的“服务范围”和“业务类型”。 在“其他信息”栏目,勾选开启静态网站托管。 单击“确定加速”。 (可选)如果开启了CDN加速,需要按照以下步骤配置CDN加速。 在已绑定的自定义域名操作列,单击“管理CDN加速”。 在打开的CDN控制台页面,单击域名,然后再单击“高级配置”,进入域名高级配置页面。 在“高级配置”中的“HTTP header配置”中,添加“Content-Disposition”响应头,取值为“inline”。 父主题: 实施步骤
共100000条