更新时间:2024-08-21 GMT+08:00

设备策略使用示例

场景一: 策略允许OR禁止发布某Topic

  1. 创建产品和设备
    • 创建产品。访问设备接入服务,单击“管理控制台”进入设备接入控制台。选择您的实例,单击实例卡片进入。单击左侧导航栏“产品”,在页面中单击红色按钮“创建产品”。根据页面提示填写参数,然后单击“确定”,完成产品的创建。详情可见:创建产品
    • 创建设备。在设备接入控制台,单击左侧导航栏设备 > 所有设备,单击“注册设备”。根据页面提示填写参数,然后单击“确定”,完成设备的创建。详情可见:注册单个设备
  2. 生成策略
    • 访问设备接入服务,单击“管理控制台”进入设备接入控制台。选择您的实例,单击实例卡片进入。
    • 左侧导航栏单击设备 > 策略,进入策略界面。
      图1 设备策略-进入界面
    • 在策略界面单击“创建策略”,填写策略参数,单击生成策略。策略的应用范围是资源空间(appId),其中资源“topic:”开头代表MQTT中的Topic,用于发布与订阅。允许发布和订阅主题:/v1/test/hello。
      图2 设备策略-创建策略
    • 绑定策略。下面以某个设备为例进行绑定。策略目标类型选择“设备”,单击需要绑定策略的设备。
      图3 设备策略-绑定设备
    • 验证策略。
      1. 获取连接参数。在“管理控制台”单击左侧导航栏设备 > 所有设备,找到上述策略绑定的设备,进入设备详情页面,查看连接参数。
        图4 设备-设备详情
        图5 设备-设备详情-MQTT连接参数
      2. 使用MQTT.fx连接云平台。打开MQTT.fx软件,配置上述策略绑定的设备的鉴权参数,然后单击“Apply”保存,单击“Connect”进行连接鉴权。
      3. 订阅允许的topic。订阅主题:/v1/test/hello,订阅成功。
        图6 订阅成功
      4. 订阅其他Topic。订阅主题:/v2/test/hello,订阅失败。
        图7 订阅失败

场景二: 端到端(M2M)+策略

接下来讲述产品A下的设备a,对产品B下的所有设备进行1对N通信(假设转发的Topic为以/test/M2M/开头的消息)。同时,只允许产品A下设备a、产品B下的所有设备进行发布、订阅Topic以/test/M2M/开头的消息。

  1. 创建产品和设备
    • 创建产品。访问设备接入服务,单击“管理控制台”进入设备接入控制台。选择您的实例,单击实例卡片进入。单击左侧导航栏“产品”,在页面中单击红色按钮“创建产品”。根据页面提示填写参数,然后单击“确定”,完成产品的创建。详情可见:创建产品
    • 创建设备。在设备接入控制台,单击左侧导航栏设备 > 所有设备,单击“注册设备”。根据页面提示填写参数,然后单击“确定”,完成设备的创建。详情可见:注册单个设备
  2. 设置流转规则
    • 访问设备接入服务,单击“管理控制台”进入设备接入控制台。选择您的实例,单击实例卡片进入。在左侧导航栏“规则”中单击“数据转发”,可到数据转发界面。
      图8 数据转发-列表
    • 单击“创建规则”按照业务具体填写需要转发的数据参数,填写完成后单击“创建规则”。配置SQL过滤语句为:STARTS_WITH(notify_data.body.topic,'/test/M2M/')。
      图9 新建流转规则-M2M

      SQL过滤语句的使用详情可见:SQL语句

      STARTS_WITH(notify_data.body.topic,'/test/M2M/')代表的是筛选主题(Topic)以“/test/M2M/”开头的数据。

    • 设置转发到的目标。请将转发目标设置为“设备”,Topic填写“$topic()”(表示转发的Topic不变,按原本Topic下发),单击“确定”
      图10 新建转发目标-转发至设备
    • 启动规则。单击页面中央的“启动规则”,完成规则设置。
      图11 启动规则-转发至设备
  3. 设置策略
    • 左侧导航栏单击设备 > 策略,进入策略界面。
      图12 设备策略-进入界面
    • 在策略界面单击“创建策略”,填写策略参数,单击生成策略。添加策略如下图所示:
      图13 设备策略-创建策略(M2M)
    • 绑定策略。把需要开放的产品及设备进行绑定。策略目标类型选择“产品”,单击需要绑定策略的产品。确定后可以在“策略详情”页面,进行“编辑”,添加要绑定的设备。
      图14 设备策略-绑定产品
      图15 设备策略-编解策略

  4. 验证策略。
    1. 打开两个MQTT.fx,分别模拟产品A下的设备a(test111)、产品B下的设备b(test222)。
    2. 设备b在Subscribe页面中输入Topic“ /test/M2M/#”后,单击“Subscribe”订阅。
      图16 设备b(test222)在Subscribe页面中输入topic
    3. 设备a(test111)向设备b(test222)发送消息,在设备a(test111)的MQTT.fx的“Publish”页面中,输入topic"/test/M2M/${任意单词}”(其中“${任意单词}”替换成任意单词) ,在内容输入框中输入要发送的消息(如:hello)单击“Publish”即可发送。
      图17 设备a Publish页面输入消息

      在设备b的Subscribe页面可以看到接收的消息如下:

      图18 设备b Subscribe页面展示
    4. 非产品B名下设备订阅或发布Topic:“ /test/M2M/#”,订阅、发布失败。
      图19 订阅失败