
# 使用EventGrid触发器（RabbitMQ自定义事件源）（仅存量用户支持）
本节介绍如何通过函数工作流控制台创建EventGrid触发器（RabbitMQ自定义事件源），实现使用RabbitMQ自定义事件源触发函数执行。
**EventGrid触发器（RocketMQ自定义事件源）当前已不支持新建使用，仅存量用户可用。**
#### 约束与限制
EventGrid触发器支持使用的区域和具体运行时函数请以控制台展示为准。
#### 前提条件
- **函数及其配置：**
  - 已创建函数。
  
  - 请参见[配置网络](https://support.huaweicloud.com/usermanual-functiongraph/functiongraph_01_0222.html)开启函数访问VPC内资源的网络配置，开启后需在RabbitMQ服务安全组配置对应子网的权限，参考RabbitMQ实例的前提条件配置。
   
- **EventGrid：**
  已创建EG事件通道，创建过程请参见[创建eg事件通道](https://support.huaweicloud.com/usermanual-eg/eg-ug-054.html)。
  
- **RabbitMQ实例：**
  - 已创建RabbitMQ实例，创建操作请参见[购买RabbitMQ实例](https://support.huaweicloud.com/usermanual-rabbitmq/rabbitmq-ug-180604004.html)。
  
  - 创建Vhost、Exchange和Queue。
    1. 创建RabbitMQ Vhost，创建操作请参见[创建RabbitMQ Vhost](https://support.huaweicloud.com/usermanual-rabbitmq/rabbitmq_ug_0022.html)。
    
    2. 创建RabbitMQ Exchange，创建操作请参见[创建RabbitMQ Exchange](https://support.huaweicloud.com/usermanual-rabbitmq/rabbitmq_ug_0027.html)。
    
    3. 创建RabbitMQ Queue，创建操作请参见[创建RabbitMQ Queue](https://support.huaweicloud.com/usermanual-rabbitmq/rabbitmq_ug_0029.html)。
    
    4. 绑定RabbitMQ Exchange和RabbitMQ Queue，绑定操作请参见[绑定RabbitMQ Exchange](https://support.huaweicloud.com/usermanual-rabbitmq/rabbitmq-ug-0045.html)、[绑定RabbitMQ Queue](https://support.huaweicloud.com/usermanual-rabbitmq/rabbitmq_ug_0031.html)。
       ![](https://support.huaweicloud.com/usermanual-functiongraph/public_sys-resources/note_3.0-zh-cn.png)
       Vhost是一个相对独立的RabbitMQ服务，用于管理Exchange、Queue。一个RabbitMQ实例下可以有多个Vhost，一个Vhost里可以有若干个Exchange和Queue，具体详情请参见[RabbitMQ业务使用流程](https://support.huaweicloud.com/usermanual-rabbitmq/rabbitmq-ug-0044.html)。
       
     
  
  - 确认实例安全组规则是否配置正确。
    1. 在RabbitMQ实例详情页面的"基本信息 \> 网络"，单击安全组名称，跳转到安全组页面。
    
    2. 选择"入方向规则"，查看安全组入方向规则。
       1. 实例未开启SSL开关 ▪ 如果是VPC内访问，实例安全组入方向规则，需要允许端口5672的访问。
          ▪ 如果是公网访问，需要允许端口15672的访问。
          
       
       2. 实例已开启SSL开关 ▪ 如果是VPC内访问，实例安全组入方向规则，需要允许端口5671的访问。
          ▪ 如果是公网访问，需要运行端口15671的访问。
          
        
     
   
 
#### 创建EventGrid触发器（RabbitMQ自定义事件源）
1. 登录[函数工作流控制台](https://console.huaweicloud.com/functiongraph/?locale=zh-cn)，在左侧的导航栏选择"函数 \> 函数列表"。
2. 选择待配置的函数，单击进入函数详情页。
3. 选择"设置 \> 触发器"，单击"创建触发器"，弹出"创建触发器"对话框。 
   图1创建触发器   
   ![](https://support.huaweicloud.com/usermanual-functiongraph/zh-cn_image_0000002152213904.png "点击放大")
   
   
4. 配置以下参数。 
   表1EG触发器（RabbitMQ）参数说明 
   | 参数    | 说明                                                                                             | 取值样例                            |
   |:---|:---|:---|
   | 触发器类型 | 必选参数。 选择"分布式消息服务 RabbitMQ版 (HC.RABBITMQ)"。           | 分布式消息服务 RabbitMQ版 (HC.RABBITMQ) |
   | 触发器名称 | 必选参数。 触发器的名称。只能包含字母、数字、下划线和中划线。不能以数字、中划线开头。长度在 1-128 之间。 | EG-RabbitMQ                     |
   | 事件通道  | 必选参数。 选择已创建的EG事件通道。若无事件通道，可单击"创建事件通道"完成创建。              | EGtest                          |
   | 实例    | 必选参数。 选择已创建的RabbitMQ实例。若无实例，可单击"创建实例"完成创建。            | rabbitmq-fg                     |
   | 用户名   | 必选参数。 填写连接RabbitMQ实例的用户名。                              | fgtest                          |
   | 密码    | 必选参数。 填写连接RabbitMQ实例的密码。                               | testrabbitmq                    |
   | 虚拟机名称 | 必选参数。 填写RabbitMQ实例的虚拟机名称。                               | rabbitmqEX                      |
   | 队列    | 必选参数。 填写RabbitMQ实例的队列。                                 | rabbitmqQueue                   |
      
   
   
5. 单击"确定"，完成EG触发器的创建。
 
#### 配置EventGrid事件触发函数
1. 返回函数工作流控制台，在左侧的导航栏选择"函数 \> 函数列表"。
2. 选择待配置的函数，单击进入函数详情页。
3. 在函数详情页，选择函数版本。
4. 在"代码"页签下，单击"测试"，弹出"配置测试事件"对话框。
5. 填写如下[表2]所示测试信息后，单击"创建"。
   
    表2测试参数 
   | 参数     | 说明                                                                                        |
   |:---|:---|
   | 配置测试事件 | 可创建新的测试事件，也可编辑已有的测试事件。 选择默认值："创建新的测试事件"。          |
   | 事件模板   | 选择"分布式消息服务 RabbitMQ版 (HC.RABBITMQ)"模板，使用系统内置HC.RABBITMQ事件模板。                              |
   | 事件名称   | 事件名称必须以大写或小写字母开头，支持字母（大写或小写），数字和下划线"_"（或中划线"-"），并以字母或数字结尾，长度为1-25个字符，例如：rabbitmq-123test。 |
   | 测试事件   | 自动加载系统内置eg-RabbitMQ事件模板，本例不做修改。                                                           |
      
   
   
6. 单击"测试"，可以得到函数运行结果，函数会返回输入eg-rabbitmq消息数据。
 
#### 相关文档
除使用控制台外，函数工作流支持通过API的方式使用函数触发器，详情请参见[函数触发器API参考](https://support.huaweicloud.com/api-functiongraph/FunctionTriggers.html)。
