
# 使用分布式消息服务 Kafka版（KAFKA）触发器
本节介绍如何通过函数工作流控制台创建Kafka触发器，以实现FunctionGraph对Kafka实例中指定Topic的新消息进行定期轮询。FunctionGraph会将轮询得到的消息作为参数，用于调用相应函数。
关于Kafka触发器的事件源介绍，请参见[支持的事件源](https://support.huaweicloud.com/devg-functiongraph/functiongraph_02_0102.html)。
![](https://support.huaweicloud.com/usermanual-functiongraph/public_sys-resources/note_3.0-zh-cn.png)
分布式消息服务Kafka版与开源Kafka的差异说明，请参见[Kafka与开源Kafka的差异](https://support.huaweicloud.com/productdesc-kafka/kafka-pd-200720001.html)。
#### 约束与限制
- Kafka触发器支持使用的区域和具体运行时函数请以控制台展示为准。
- Kafka触发器调用的请求正文有效负载大小为6M。
- 对于处理失败的Kafka数据，Kafka触发器会丢弃过大记录（\>6MB）。
 
#### 前提条件
- **函数及其配置：**
  - 已创建函数。
  
  - 已配置函数的分布式消息服务DMS委托权限，委托的创建请参见[配置函数的委托权限](https://support.huaweicloud.com/usermanual-functiongraph/functiongraph_01_0920.html)。
  
  - 请参见[配置网络](https://support.huaweicloud.com/usermanual-functiongraph/functiongraph_01_0222.html)开启函数访问VPC内资源的网络配置。
   
- **分布式消息服务Kafka：**
  - 已创建Kafka实例，创建操作请参见[购买Kafka专享版实例](https://support.huaweicloud.com/usermanual-kafka/kafka-ug-180604013.html)。
  
  - 在Kafka实例下创建主题，创建操作请参见[Kafka实例创建Topic](https://support.huaweicloud.com/usermanual-kafka/kafka-ug-180604018.html)。
  
  - 开启函数访问VPC内资源后，请参见[选择和配置Kafka安全组](https://support.huaweicloud.com/kafka_faq/kafka-faq-180604024.html)在Kafka服务安全组配置对应子网的权限。
   
 
#### 创建Kafka触发器
1. 登录[函数工作流控制台](https://console.huaweicloud.com/functiongraph/?locale=zh-cn)，在左侧的导航栏选择"函数 \> 函数列表"。
2. 选择待配置的函数，单击进入函数详情页。
3. 选择"设置 \> 触发器"，单击"创建触发器"，弹出"创建触发器"对话框。 
   图1创建触发器   
   ![](https://support.huaweicloud.com/usermanual-functiongraph/zh-cn_image_0000002082254022.png "点击放大")
   
   
4. 配置以下参数。 
   表1Kafka触发器参数说明 
   | 参数    | 说明                                                                                      | 取值样例                   |
   |:---|:---|:---|
   | 触发器类型 | 选择"分布式消息服务 Kafka版 (KAFKA)"。                                                             | 分布式消息服务 Kafka版 (KAFKA) |
   | 实例    | 选择已创建的Kafka实例。若无实例，可单击"创建实例"完成创建。                                                       | kafka-fg               |
   | 主题    | 选择专享版Kafka实例的Topic。Kafka触发器当前支持选择多个Topic主题，从而避免Topic过多导致创建的触发器数量被限制。若无主题，可单击"创建主题"完成创建。 | topic-fg               |
   | 批处理大小 | 输入每次从Topic消费的消息数量，设置范围：1\~1000。                                                         | 100                    |
   | 用户名   | Kafka实例开启SSL时需要填写。连接Kafka专享版实例的用户名。                                                     | user                   |
   | 密码    | Kafka实例开启SSL时需要填写。连接Kafka专享版实例的密码。                                                      | \*\*\*                 |
      
   
   
5. 单击"确定"，完成kafka触发器的创建。
 
#### 配置Kafka事件触发函数
1. 返回函数工作流控制台，在左侧的导航栏选择"函数 \> 函数列表"。
2. 选择待配置的函数，单击进入函数详情页。
3. 在函数详情页，选择函数版本。
4. 在"代码"页签下，单击"测试"，弹出"配置测试事件"对话框。
5. 填写如[表2]所示测试信息后，单击"创建"。
   
    表2测试信息 
   | 参数     | 说明                                                                            | 取值样例                  |
   |:---|:---|:---|
   | 配置测试事件 | 可创建新的测试事件，也可编辑已有的测试事件。 默认值为"创建新的测试事件"。 | 创建新的测试事件              |
   | 事件模板   | 选择"分布式消息服务 Kafka版（KAFKA）"模板，使用系统内置Kafka事件模板。                                  | 分布式消息服务 Kafka版（KAFKA） |
   | 事件名称   | 事件名称必须以大写或小写字母开头，支持字母（大写或小写），数字和下划线"_"（或中划线"-"），并以字母或数字结尾，长度为1-25个字符。         | kafka-123test         |
   | 测试事件   | 自动加载系统内置kafka事件模板，本例不做修改。                                                     | -                     |
      
   
   
6. 单击"测试"，可以得到函数运行结果，函数会返回输入kafka消息数据。
 
#### 相关文档
- 除使用控制台外，函数工作流支持通过API的方式使用函数触发器，详情请参见[函数触发器API参考](https://support.huaweicloud.com/api-functiongraph/FunctionTriggers.html)。
- 使用KAFKA触发器常见问题：[函数和Kafka必须在同一个子网内，才可以配置Kafka触发器吗？](https://support.huaweicloud.com/functiongraph_faq/functiongraph_03_0770.html)
 
