
# 使用设备接入（IoTDA）触发器
本节介绍如何通过函数工作流控制台创建IoTDA触发器，实现与设备接入服务IoTDA的协同工作。
关于设备接入服务IoTDA触发器事件源的具体介绍，请参见[支持的事件源](https://support.huaweicloud.com/devg-functiongraph/functiongraph_02_0102.html)。
#### 约束与限制
IoTDA触发器支持使用的区域和具体运行时函数请以控制台展示为准。
#### 前提条件
- 已创建函数。
- 已创建IoTDA实例，创建详情请参见[购买IoTDA实例](https://support.huaweicloud.com/usermanual-iothub/iot_01_0078.html)。
- 已创建IoTDA实例的资源空间，创建详情请参见[创建资源空间](https://support.huaweicloud.com/usermanual-iothub/iot_01_0006.html)。
 
#### 创建设备接入IoTDA触发器
1. 登录[函数工作流控制台](https://console.huaweicloud.com/functiongraph/?locale=zh-cn)，在左侧的导航栏选择"函数 \> 函数列表"。
2. 选择待配置的函数，单击进入函数详情页。
3. 选择"设置 \> 触发器"，右侧单击"创建触发器"，弹出"创建触发器"对话框。
4. 配置以下参数。 
   - 触发器类型：选择"设备接入（IoTDA）"。
   
   - 实例：选择已经创建好的IoTDA实例。
   
   - 数据来源、触发事件、资源空间：详情请参见[表1]。
      表1配置说明 
     | 数据来源     | 触发事件           | 资源空间                                                                 |
     |:---|:---|:---|
     | 设备       | 设备添加、设备删除、设备更新 | 选择资源空间。IoTDA实例支持创建多个资源空间，并指定其中一个作为"默认资源空间"。"默认资源空间"每个租户有且仅有一个，不允许删除。 |
     | 设备属性     | 设备属性上报         | 选择资源空间。IoTDA实例支持创建多个资源空间，并指定其中一个作为"默认资源空间"。"默认资源空间"每个租户有且仅有一个，不允许删除。 |
     | 设备消息     | 设备消息上报         | 选择资源空间。IoTDA实例支持创建多个资源空间，并指定其中一个作为"默认资源空间"。"默认资源空间"每个租户有且仅有一个，不允许删除。 |
     | 设备消息状态   | 设备消息状态变更       | 选择资源空间。IoTDA实例支持创建多个资源空间，并指定其中一个作为"默认资源空间"。"默认资源空间"每个租户有且仅有一个，不允许删除。 |
     | 设备状态     | 设备状态变更         | 选择资源空间。IoTDA实例支持创建多个资源空间，并指定其中一个作为"默认资源空间"。"默认资源空间"每个租户有且仅有一个，不允许删除。 |
     | 产品       | 产品添加、产品删除、产品更新 | 选择资源空间。IoTDA实例支持创建多个资源空间，并指定其中一个作为"默认资源空间"。"默认资源空间"每个租户有且仅有一个，不允许删除。 |
     | 设备异步命令状态 | 批量任务状态变更       | 选择资源空间。IoTDA实例支持创建多个资源空间，并指定其中一个作为"默认资源空间"。"默认资源空间"每个租户有且仅有一个，不允许删除。 |
     | 运行日志     | 上报平台日志         | 选择资源空间。IoTDA实例支持创建多个资源空间，并指定其中一个作为"默认资源空间"。"默认资源空间"每个租户有且仅有一个，不允许删除。 |
     | 批量任务     | 批量任务状态变更       | 选择资源空间。IoTDA实例支持创建多个资源空间，并指定其中一个作为"默认资源空间"。"默认资源空间"每个租户有且仅有一个，不允许删除。 |
        
     
   
   
   
   
5. 单击"确定"，完成IoTDA触发器的创建。
 
#### 触发函数
1. 返回函数工作流控制台，在左侧的导航栏选择"函数 \> 函数列表"。
2. 选择待配置的函数，单击函数名称进入函数详情页。
3. 在函数详情页，选择函数版本。
4. 在"代码"页签下，单击"测试"，弹出"配置测试事件"对话框。
5. 填写如[表2]参数后，单击"创建"。
   
    表2测试信息 
   | 参数     | 说明                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |
   |:---|:---|
   | 配置测试事件 | 可创建新的测试事件，也可编辑已有的测试事件。默认是"创建新的测试事件"。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
   | 事件模板   | 选择"空白模板"。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
   | 事件名称   | 事件名称必须以大写或小写字母开头，支持字母（大写或小写），数字和下划线"_"（或中划线"-"），并以字母或数字结尾，长度为1-25个字符，例如iotda-123test。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
   | 测试事件   | ``` { "resource" : "device", "event" : "create", "event_time" : "20240919T011335Z", "event_time_ms" : "2024-09-19T01:13:35.854Z", "request_id" : "75127474-1a26-4578-8847-3128d6101954", "notify_data" : { "body" : { "app_id" : "3d40caf3ddfc4e83815b54b50f13aad7", "app_name" : "DefaultApp_6439vdv2", "device_id" : "66eb7a0ffa8d9c36870c6892_ttytytytytytyt", "node_id" : "ttytytytytytyt", "gateway_id" : "66eb7a0ffa8d9c36870c6892_ttytytytytytyt", "node_type" : "GATEWAY", "auth_info" : { "auth_type" : "SECRET", "secure_access" : false, "timeout" : 0 }, "product_id" : "66eb7a0ffa8d9c36870c6892", "product_name" : "test", "status" : "INACTIVE", "create_time" : "20240919T011335Z" } } } ``` |
      
   
   
6. 单击"测试"，可以得到函数运行结果，函数会返回输入的IoTDA消息数据。
 
#### 相关文档
除使用控制台外，函数工作流支持通过API的方式使用函数触发器，详情请参见[函数触发器API参考](https://support.huaweicloud.com/api-functiongraph/FunctionTriggers.html)。
