华为云用户手册

  • 查看任务执行记录 采集任务执行完成之后支持查看任务执行记录,便于用户查看采集任务的执行情况。任务执行记录包括调度开始时间、调度结束时间、耗时等,同时,可通过下载日志查看执行采集任务的日志详情。 在采集任务列表单击任务操作列的“执行记录”。 在“执行记录”页面查看任务执行详情,包含状态、调度开始时间、调度结束时间、耗时等。 单击列表前面的,查看任务子流程的执行情况。 图2 查看任务子流程详情 单击“下载日志”,查看执行采集任务的日志详情。
  • 更多操作 采集任务创建完成后,您还可以执行如表2的操作。 表2 相关操作 操作 说明 查看采集任务详情 在任务列表中,单击采集任务名称,可查看采集任务的名称、数据连接、执行状态、描述、开始时间、调度周期等信息。 停止采集任务 在任务列表中找到需要立即停止的任务,单击“操作”栏中的“停止”即可立即停止此采集任务。 编辑采集任务 在任务列表中找到需要编辑的任务,单击“操作”栏中的“编辑”修改采集任务。置灰项不可修改且处于调度中的任务不可编辑。 终止采集任务 在任务列表中找到需要终止的任务,单击“操作”栏中的“终止”,将执行中的任务终止。 查看采集任务日志 在任务列表中找到需要查看日志的任务,单击“操作”栏中的“日志”可查看此任务的日志信息。 删除采集任务 在任务列表中找到需要删除的任务,单击“操作”栏中的“删除”可删除此任务。
  • 场景说明 通过IoTDA规则流转能力实现自动调用合约将数据流转到 BCS 区块链服务实现数据可信上链,助力客户构建可信多方协作平台,使用 区块链 可减少人为纠纷,提高交易效率;区块链的不可篡改性降低了欺诈和网络错误的发生;共享的账本、流程、记录增进参与方之间的可信度;审计机构可随时对不可篡改的账本进行审计。IoTDA企业版实例支持将数据流转到B CS 华为云区块链引擎实例(推荐)和Hyperledger Fabric增强版。 本示例分为两部分,将设备上报的数据转发到华为云区块链引擎实例(推荐)和Hyperledger Fabric增强版上链。 Hyperledger Fabric增强版由于开源内核限制,不支持高tps场景使用。建议使用性能更好的华为云区块链引擎实例。
  • Ref 内部函数Ref将返回指定引用参数的值,引用参数必须在模板中有声明。 JSON { "Ref" : "paramName" } 表18 参数说明 参数名称 类型 说明 paramName String 引用的参数名称。 返回值 String 引用参数对应的值。 示例如下: { "Ref": "iotda::mqtt::username" } 当参数iotda::mqtt::username="device_123" return: "device_123"
  • Fn::SubStringBefore 内部函数Fn::SubStringBefore截取字符串指定分隔符前的子字符串。 JSON { "Fn::SubStringBefore" : ["content", "separator"] } 表17 参数说明 参数名称 类型 说明 content String 待截取的字符串。 separator String 分隔符。 返回值 String 字符串被指定分隔符分割前的子字符串。 示例如下: { "Fn::SubStringBefore": ["content:123456", ":"] ] return: "content"
  • Fn::SubStringAfter 内部函数Fn::SubStringAfter截取字符串指定分隔符后的子字符串。 JSON { "Fn::SubStringAfter" : ["content", "separator"] } 表16 参数说明 参数名称 类型 说明 content String 待截取的字符串。 separator String 分隔符。 返回值 String 字符串被指定分隔符分割后的子字符串。 示例如下: { "Fn::SubStringAfter": ["content:123456", ":"] ] return: "123456"
  • Fn::HmacSHA256 内部函数Fn::HmacSHA256将一个字符串按给定密钥进行HmacSHA256算法加密。 JSON {"Fn::HmacSHA256": ["content", "secret"]} 表5 参数说明 参数名称 类型 说明 content String 待加密的字符串。 secret String 或 byte[] 加密密钥,可以是字符串或者字节数组类型 返回值 String 使用HmacSHA256算法加密后的值。 示例如下: { "Fn::HmacSHA256": ["testvalue", "123456"] } return: "0f9fb47bd47449b6ffac1be951a5c18a7eff694940b1a075b973ff9054a08be3"
  • Fn::MathDiv 内部函数Fn::MathDiv将两个整数进行数学除法运算。 JSON {"Fn::MathDiv": [X, Y]} 表8 参数说明 参数名称 类型 说明 X long 被除数。 Y long 除数。 返回值 long X 除Y后的值。 示例如下: { "Fn::MathDiv": [10, 2] } return: 5 { "Fn::MathDiv": [10, 3] } return: 3
  • Fn::SplitSelect 内部函数Fn::SplitSelect将一个字符串按指定的分隔符分割成字符串数组,然后返回数组指定索引的元素。 JSON { "Fn::SplitSelect" : ["String", "Separator", index] } 表14 参数说明 参数名称 类型 说明 String String 被分割的字符串。 Separator String 分隔符。 index int 返回元素在数组中的索引值,从0开始。 返回值 String 字符串按特定分隔符分割后指定索引的子字符串。 示例如下: { "Fn::SplitSelect": ["a|b|c", "|", 1] } return: "b"
  • Fn::Split 内部函数Fn::Split将一个字符串按指定的分隔符分割成字符串数组。 JSON { "Fn::Split" : ["String", "Separator"] } 表13 参数说明 参数名称 类型 说明 String String 被分割的字符串。 Separator String 分隔符。 返回值 String[] 原始参数String被分隔符Separator拆分后的字符串数组。 示例如下: { "Fn::Split": ["a|b|c", "|"] } return: ["a", "b", "c"]
  • Fn::Base64Encode 内部函数Fn::Base64Encode将一个字符串按BASE64编码。 JSON {"Fn::Base64Encode": "content"} 表3 参数说明 参数名称 类型 说明 content String 待编码的字符串。 返回值 String base64编码后的字符串。 示例如下: { "Fn::Base64Encode": "testvalue" } return: "dGVzdHZhbHVl"
  • Fn::GetBytes 内部函数Fn::GetBytes返回一个字符串UTF-8编码的字节数组。 JSON {"Fn::GetBytes": "content"} 表4 参数说明 参数名称 类型 说明 content String 待编码的字符串。 返回值 byte[] 字符串UTF-8编码后的字节数组。 示例如下: { "Fn::GetBytes": "testvalue" } return: "7465737476616c7565" //为了方便展示,此处转化为16进制字符串
  • Fn::Join 内部函数Fn::Join可将多个字符串(数量最大值为10)拼接成一个字符串。 JSON {"Fn::Join": ["element", "element"...]} 表6 参数说明 参数名称 类型 说明 element String 需拼接的字符串。 返回值 String 子字符串拼接在一起后的字符串。 示例如下: { "Fn::Join": ["123", "456", "789"] } return: "123456789"
  • Fn::Sub 内部函数Fn::Sub将输入字符串中的变量替换为指定的值。在模板中您可以使用此函数来构造一个动态的字符串。 JSON { "Fn::Sub" : [ "String", { "Var1Name": Var1Value, "Var2Name": Var2Value } ] } 表15 参数说明 参数名称 类型 说明 String String 一个包含变量的字符串,变量使用“${}”占位符定义。 VarName String 变量名称,必须在参数“String”中定义。 VarValue String 变量的取值,支持函数嵌套。 返回值 String 返回原始“String”参数字符串变量替换后的值。 示例如下: { "Fn::Sub": ["${token};hmacsha256", { "token": { "Fn::HmacSHA256": ["${iotda::mqtt::username}", { "Fn::Base64Decode": "${iotda::mqtt::client_id}" }] } }] } 当变量 ${iotda::mqtt::username}="test_device_username" ${iotda::device::client_id}="OozqTPlCWTTJjEH/5s+T6w==" return:"0773c4fd6c92902a1b2f4a45fdcdec416b6fc2bc6585200b496e460e2ef31c3d"
  • Fn::Base64Decode 内部函数Fn::Base64Decode将一个字符串按BASE64解码成一个字节数组。 JSON { "Fn::Base64Decode" : "content" } 表2 参数说明 参数名称 类型 说明 content String 待解码的字符串。 返回值 byte[] base64解码后的字节数组。 示例如下: { "Fn::Base64Decode": "123456"] } return: d76df8e7 //为了方便展示,此处转化为16进制字符串
  • 使用说明 华为云IoTDA提供了多个内部函数供用户在模板中使用,使用时请认真阅读每个函数的功能定义,包括入参类型,参数长度,返回值类型等。 整个函数必须是合法的Json格式。 函数中可使用${}变量占位符或者"Ref"函数引用入参定义的参数值。 函数所使用的参数必须在模板参数中声明。 单一入参的函数后面直接跟参数,比如:"Fn::Base64Decode": "${iotda::mqtt::username}"。 多个入参的函数后面接数组格式,比如:"Fn::HmacSHA256": ["${iotda::mqtt::username}", "${iotda::device::secret}"]。 函数可以嵌套使用,即一个函数的参数可以是另一个函数,注意嵌套函数的返回值必须跟当前函数参数类型一致,比如:{"Fn::HmacSHA256": ["${iotda::mqtt::username}", {"Fn::Base64Encode": "${iotda::device::secret}"}]}
  • 策略变量 在策略中定义resource时,如果不知道对设备资源或条件键的精确值,可以使用策略变量作为占位符,进行发布/订阅主题筛选。策略变量在校验MQTT的主题时,会把变量变为接入设备对应的ID值,再进行匹配。 变量使用前缀“$”标记,后面跟一对大括号“{ }”,其中包含请求中值的变量名称。如下表,假设MQTT设备是在客户端ID为test_clientId,产品ID为test_productId,设备ID为test_deviceId。 表3 策略变量 策略变量 描述 MQTT中主题示例 适用于MQTT主题示例的策略示例 ${devices.deviceId} 设备ID test/test_deviceId/topic test/${devices.deviceId}/topic ${devices.clientId} 客户端ID test/test_clientId/topic test/${devices.clientId}/topic ${devices.productId} 产品ID test/test_productId/topic test/${devices.productId}/topic 表4 定义策略变量示例 场景 策略Topic定义示例 描述 想通过topic区分不同设备的自定义上报时。 “test/${devices.deviceId}/topic” 允许Topic为“test/${本设备ID}/topic”的主题订阅或发布。有利于设备间数据隔离。 想通过topic区分不同设备的自定义上报、区分同一设备不同时间段上报的数据时。 “test/${devices.clientId}/topic” 允许Topic为“test/${本设备的clientId}/topic”的主题订阅或发布。与deviceId不同的是,clientId携带时间戳。可用主题来区分时间段。
  • 策略通配符 策略中具有不同的通配符,使用前需注意。在策略中,“*”表示字符的任意组合,问号“? ”表示任何单个字符,而通配符“+”和“#”被视为没有特殊含义的字符。 表1 策略通配符 通配符 是MQTT通配符 策略配置是否适用 MQTT中主题示例 适用于MQTT主题示例的策略示例 # 是 否 test/# 不适用,“#”被视为没有特殊含义的字符。 + 是 否 test/+/some 不适用,“+”被视为没有特殊含义的字符。 * 否 是 不适用,“*”被视为没有特殊含义的字符。 test/* test/*/some ? 否 是 不适用,“?”被视为没有特殊含义的字符。 test/????/some test/set?????/some 表2 定义策略通配符示例 发布/订阅的Topic 策略Topic定义 解释 假设设备需要订阅/发布以下Topic: “test/topic1/some” “test/topic2/some” “test/topic3/some” “topic:test/topic?/some” 在发布、订阅的Topic中可以发现有共同点:“test/topic”+ 某一字符 + “/some”,而在策略定义中“?”代表某一字符。所以策略Topic可以定义为“topic:test/topic?/some” 假设设备需要订阅/发布以下Topic: “test/topic1/pub/some” “test/topic2/sub/some” “test/topic3/some” “topic:test/topic*/some” 在发布、订阅的Topic中可以发现有共同点:“test/topic”+ 一个或多个字符 + “/some”,而在策略定义中“*”代表多个或一个字符。所以策略Topic可以定义为“topic:test/topic*/some”
  • 概述 设备策略主要用于对发布/订阅的非$oc开头自定义topic中的数据进行传输限制。通过灵活访问的控制模型,提供了基于用户角色的访问控制,能够管理客户端发布/订阅主题的授权。借助策略功能,可以用于管理一个或多个设备/产品/群组发布、订阅的权限,以保证非$oc开头的自定义Topic的通信安全。设备Topic策略用于发布、订阅机制的协议,比如说设备侧的MQTT、MQ TTS 协议。目前华南友好局点、海外局点支持。 对于使用IOTDA的用户,新增的资源空间会默认加入策略“system_default_policy”,system_default_policy策略会允许该资源空间下所有设备的非$oc开头的自定义Topic的订阅与发布。当业务场景不适用时,可以删除该策略。 图1 策略概念图
  • 操作步骤 进入“策略”界面,单击展开“静态策略”,单击“添加实例”。 图1 创建静态策略详情 按照下方参数说明填写关键参数信息后,单击“确定”。 表1 静态策略参数列表 参数名称 说明 示例 关键字 即关键字来源中的关键字。设备发放时,如果关键字来源字符串中包含设置的关键字,则可按该实例进行发放。 将设备名称携带Beijing的设备发放至华北-北京四的 物联网平台 。 设备名称:WaterMeter-Beijing0001、WaterMeter-Beijing0002 关键字来源:设备名称 关键字:Beijing 发放区域:华北-北京四 发放应用:beijing-app1 将上报信息中携带Beijing的设备发放至华北-北京四的物联网平台。 关键字来源:数据上报 topic“$oc/devices/${device_id}/sys/bootstrap/up”上报信息:{ "baseStrategyKeyword": "WaterMeter-Beijing0003"} 关键字:Beijing 发放区域:华北-北京四 发放应用:beijing-app1 关键字来源 关键字来源指的是用于匹配关键字的字符串信息的数据来源。目前支持设备名称与数据上报两种形式。 如果为设备名称,则匹配关键字的字符串取设备创建后的设备名称。 如果为数据上报,则匹配关键字的字符串取设备发放过程中,发起发放请求Topic“$oc/devices/${device_id}/sys/bootstrap/up” 的上报信息json中的baseStrategyKeyword属性。 优先级别 发放策略的优先级,取值范围1 - 5级,1级为最低优先级。当一个设备符合多个发放策略时,按照优先级最高的策略实例发放。 发放区域 发放到指定区域后,设备将接入对应区域的 设备接入服务 。 所选区域未开通设备接入服务时,如果确定添加实例,系统将自动为您开通设备接入服务。不同区域设备接入服务价格不同,收费详情请参考价格说明。 发放应用 选择对应设备接入服务区域已创建的应用。在物联网平台中,设备由应用统一管理。 如果对应设备接入服务区域未创建应用,需要前往对应服务创建应用。
  • 概述 静态策略,即设备关键字模糊匹配的发放策略。每条静态策略实例指:匹配上该策略实例的设备,将会被发放到该条策略实例关联的设备接入实例的对应资源空间(即应用)下。 设备匹配静态策略实例的机制为: 设备的发放策略为“静态策略”,设备的关键字来源字符串包含某一静态策略实例的关键字,即被认为该设备匹配上该条策略实例。关键字来源有以下两种来源类型: 设备名称:如果设备名称包含设置的关键字,即可按照该行策略指定的发放应用进行实例发放。 数据上报:如果设备在连接后,进行发放publish时,上报Topic “$oc/devices/${deviceId}/sys/bootstrap/up” 中,json上报的属性 “baseStrategyKeyword” 包含设置的关键字,即可按该实例进行发放。 一个设备最多匹配一条静态策略实例; 当一个设备匹配上多条静态策略实例时,则以优先级最高的策略实例为优先。
  • 设备引导 下载并修改华为SDK示例代码进行设备引导(这里以java sdk代码为示例)。 用IDEA/Eclipse打开SDK代码工程,修改DEMO示例BootstrapSample中的参数,其中deviceId和secret替换为步骤3中生成的设备ID和密钥即可,bootstrapUri为获取设备发放终端节点对应的终端节点。 运行DEMO程序,看到如下日志,代表设备发放成功,并且已经收到设备发放下发的设备接入地址。如果程序运行没报错,在对应的设备接入平台可以看到设备,并已在线。
  • 生成设备证书 使用OpenSSL工具为设备证书生成密钥对(设备私钥): openssl genrsa -out deviceCert.key 2048 使用设备密钥对,生成证书签名请求文件: openssl req -new -key deviceCert.key -out deviceCert.csr 生成证书签名请求文件时,要求填写证书唯一标识名称(Distinguished Name,DN)信息,参数说明如下表2所示。 表3 证书签名请求文件参数说明 提示 参数名称 取值样例 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天,您可根据实际业务场景和需要进行调整。
  • 上传并验证CA证书 登录设备发放控制台,进入“证书”界面,单击右上角“上传CA证书”,填写“证书名称”并上传上述“制作CA证书”步骤后生成的“CA证书(rootCA.crt文件)”,单击“确定”。 图1 上传CA证书 验证步骤1中上传的CA证书,只有成功验证证书后该证书方可使用。 为验证证书生成密钥对。 openssl genrsa -out verificationCert.key 2048 获取随机验证码。 图2 上传CA证书完成页 图3 复制验证码 利用此验证码生成证书签名请求文件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天,您可根据实际业务场景和需要进行调整。 上传验证证书进行验证。 图4 上传验证证书
  • 制作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天,您可根据实际业务场景和需要进行调整。
  • 连接鉴权 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)操作。
  • 了解函数接口定义 函数服务对函数有明确的接口定义。 以java语言为例,接口定义为:作用域 返回参数 函数名(函数参数,Context参数)。 作用域:提供给FunctionGraph调用的用户函数必须定义为public。 返回参数:用户定义,FunctionGraph负责转换为字符串,作为HTTP Response返回。对于返回参数对象类型,HTTP Response该类型的JSON字符串。 函数名:用户定义函数名称。 用户定义参数:当前函数只支持一个用户参数。对于复杂参数,建议定义为对象类型,以JSON字符串提供数据。FunctionGraph调用函数时,解析JSON为对象。 Context参数:runtime提供函数执行上下文,其接口定义在SDK接口说明。 创建Java函数时,函数入口参数需要提供函数完整的名字空间,参数格式为:包名.类名.函数名。 设备发放在此基础上,要求函数代码满足如下条件: 返回参数:需满足设备发放对返回参数的约束; 函数参数:需满足设备发放对函数参数的约束; 函数接口实现:从函数参数中的备选接入点中选择一个接入点,调用发放设备接口,根据接口响应拼接参数返回。
  • 添加自定义策略 进入“策略”界面,单击展开“自定义策略”,单击“添加函数”。 图1 添加自定义策略 按照下方参数说明填写关键参数信息后,单击“确定”。 参数名称 说明 示例 函数 即在函数服务中实现的自定义策略。如果下拉框没有您想要的函数,可以单击创建新函数来实现您的自定义策略需求。 将需要通过函数“function”发放的设备发放至华北-北京四的物联网平台。 需通过函数“function”发放的设备:WaterMeter-Beijing0001、WaterMeter-Beijing0002 函数:function 发放区域:华北-北京四 发放区域 发放到指定区域后,设备将接入对应区域的设备接入服务。 所选区域未开通设备接入服务时,如果确定添加实例,系统将自动为您开通设备接入服务。不同区域设备接入服务价格不同,收费详情请参考价格说明。
  • 设备发放对返回参数的约束 表1 TdpFuncResult 名称 说明 类型 statusCode String 函数执行状态码,用于标识函数执行过程是否出现异常,遵循HTTP状态码含义。 body String 字符串,但格式为JSON,结构为TdpFuncBody。 表2 TdpFuncBody 名称 说明 类型 status String 设备发放业务功能标识,allow表示发放成功,deny表示发放失败,设备发放使用此标识判断函数内业务功能执行成功与否。 context TdpFuncBodyContext 扩展字段,用于承载函数执行结果。 表3 TdpFuncBodyContext 名称 说明 类型 allocationResult String 发放结果,存放发放接口返回的响应结构体。 errorCode String 错误码,如发放失败,则此值需不为空。 errorMsg String 错误描述,如发放失败,则此值需不为空。 发放设备成功的返回参数样例 { "statusCode": 200, "body": "{\"status\":\"allow\",\"context\":{\"allocationResult\":\"dps返回的下发结果\"}}" } 发放设备失败的返回参数样例 { "statusCode": 200, "body": "{\"status\":\"deny\",\"context\":{\"errorCode\":\"错误码\",\"errorMsg\":\"错误描述\"}}" }
  • 创建授权关系 被授权方进入“授权”界面,单击在“被授权列表”下的“发起授权请求”。 图1 发起授权请求 被授权方填写授权方的账号名称或者账号ID(即 IAM 的Domain Name或Domain ID),单击“获取短信验证码”。 图2 发起授权请求详情 系统将向授权方绑定的手机号发送短信验证码,被授权方从授权方获取到短信验证码,填入验证码输入框,填写“描述”信息。 被授权方单击“确定”,授权请求完成,授权关系建立。 被授权方将在“被授权列表”中查看到与其他租户建立的授权关系,授权方将在“授权列表”中查看到与其他租户建立的授权关系。被授权方可删除某一条授权关系,授权方可禁用或删除某一条授权关系。
共100000条