云服务器内容精选

  • 请求示例 创建规则触发条件,触发条件为设备创建通知。 POST https://{endpoint}/v5/iot/{project_id}/routing-rule/rules { "rule_name" : "rulename", "subject" : { "resource" : "device", "event" : "create" }, "app_type" : "GLOBAL", "description" : "description" } 创建规则触发条件,触发条件为属性上报。 POST https://{endpoint}/v5/iot/{project_id}/routing-rule/rules { "rule_name" : "rulename", "subject" : { "resource" : "device.property", "event" : "report" }, "app_type" : "GLOBAL", "description" : "description" } 创建规则触发条件,触发条件为消息上报(根据sql进行topic筛选,基础版不支持该sql筛选能力)。 POST https://{endpoint}/v5/iot/{project_id}/routing-rule/rules { "rule_name" : "rulename", "subject" : { "resource" : "device.message", "event" : "report" }, "app_type" : "GLOBAL", "description" : "description", "select" : "notify_data.header as header,notify_data.body as body,'12345678901234abcd' as id", "where" : "notify_data.body.topic = '$oc/devices/646c7579a5adc915f8966e8b_8514932826827763/user/testmsg'" }
  • 响应示例 状态码: 201 Created { "rule_id" : "5bcaddda-75bf-4623-8c8d-26175c41fcca", "rule_name" : "rulename", "description" : "description", "subject" : { "resource" : "device", "event" : "create" }, "app_type" : "GLOBAL", "app_id" : "1a7ffc5cd89c44dd8265b1653d951ce0", "select" : "*", "where" : "product_id='d89c-44dd-8265-b1653d951ce0'", "active" : false }
  • 响应参数 状态码: 201 表5 响应Body参数 参数 参数类型 描述 rule_id String 规则触发条件ID,用于唯一标识一个规则触发条件,在创建规则条件时由 物联网平台 分配获得。 rule_name String 用户自定义的规则名称。 最小长度:1 最大长度:256 description String 用户自定义的规则描述。 最小长度:1 最大长度:256 subject RoutingRuleSubject object 资源事件信息,即资源变化事件。 app_type String 租户规则的生效范围,取值如下: GLOBAL:生效范围为租户级 APP:生效范围为资源空间级。 app_id String 资源空间ID select String 用户自定义sql select语句,最大长度2500,该参数仅供标准版和企业版用户使用。 最小长度:0 最大长度:2500 where String 用户自定义sql where语句,最大长度2500,该参数仅供标准版和企业版用户使用。 最小长度:0 最大长度:2500 active Boolean 规则条件的状态是否为激活。 表6 RoutingRuleSubject 参数 参数类型 描述 resource String 参数说明:资源名称。 取值范围: device:设备。 device.property:设备属性。 device.message:设备消息。 device.message.status:设备消息状态。 device.status:设备状态。 batchtask:批量任务。 product:产品。 device.command.status:设备异步命令状态。 最小长度:1 最大长度:50 event String 参数说明:资源事件。 取值范围:与资源有关,不同的资源,事件不同。event需要与resource关联使用,具体的“resource:event”映射关系如下: device:create(设备添加) device:delete(设备删除) device:update(设备更新) device.status:update (设备状态变更) device.property:report(设备属性上报) device.message:report(设备消息上报) device.message.status:update(设备消息状态变更) batchtask:update (批量任务状态变更) product:create(产品添加) product:delete(产品删除) product:update(产品更新) device.command.status:update(设备异步命令状态更新) 最小长度:1 最大长度:50
  • 请求参数 表2 请求Header参数 参数 是否必选 参数类型 描述 X-Auth-Token 否 String 参数说明:用户Token。通过调用 IAM 服务 获取IAM用户Token接口获取,接口返回的响应消息头中“X-Subject-Token”就是需要获取的用户Token。简要的获取方法样例请参见 Token认证。 Instance-Id 否 String 参数说明:实例ID。物理多租下各实例的唯一标识,一般华为云租户无需携带该参数,仅在物理多租场景下从管理面访问API时需要携带该参数。您可以在IoTDA管理控制台界面,选择左侧导航栏“总览”页签查看当前实例的ID。 表3 请求Body参数 参数 是否必选 参数类型 描述 rule_name 否 String 参数说明:规则名称。 取值范围:长度不超过256,只允许中文、字母、数字、以及_?'#().,&%@!-等字符的组合 最小长度:1 最大长度:256 description 否 String 参数说明:用户自定义的规则描述。 最小长度:0 最大长度:256 subject 是 RoutingRuleSubject object 参数说明:资源事件信息。 app_type 否 String 参数说明:租户规则的生效范围,默认GLOBAL,。 取值范围: GLOBAL:生效范围为租户级。 APP:生效范围为资源空间级。如果类型为APP,创建的规则生效范围为携带的app_id指定的资源空间,不携带app_id则创建规则生效范围为默认资源空间。 app_id 否 String 参数说明:资源空间ID。。 取值范围:长度不超过36,只允许字母、数字、下划线(_)、连接符(-)的组合。 select 否 String 参数说明:用户自定义sql select语句,最大长度2500,该参数仅供标准版和企业版用户使用。可填参数可参考帮助文档数据流转下各接口的请求参数,如notify_data.body。 最小长度:0 最大长度:2500 where 否 String 参数说明:用户自定义sql where语句,最大长度2500,该参数仅供标准版和企业版用户使用,可填参数可参考帮助文档数据流转下各接口的请求参数,如notify_data.body。 最小长度:0 最大长度:2500 表4 RoutingRuleSubject 参数 是否必选 参数类型 描述 resource 是 String 参数说明:资源名称。 取值范围: device:设备。 device.property:设备属性。 device.message:设备消息。 device.message.status:设备消息状态。 device.status:设备状态。 batchtask:批量任务。 product:产品。 device.command.status:设备异步命令状态。 最小长度:1 最大长度:50 event 是 String 参数说明:资源事件。 取值范围:与资源有关,不同的资源,事件不同。event需要与resource关联使用,具体的“resource:event”映射关系如下: device:create(设备添加) device:delete(设备删除) device:update(设备更新) device.status:update (设备状态变更) device.property:report(设备属性上报) device.message:report(设备消息上报) device.message.status:update(设备消息状态变更) batchtask:update (批量任务状态变更) product:create(产品添加) product:delete(产品删除) product:update(产品更新) device.command.status:update(设备异步命令状态更新) 最小长度:1 最大长度:50