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

使用RabbitMQ触发器

本节介绍创建RabbitMQ触发器,供用户了解RabbitMQ触发器的使用方法(当前只支持fanout路由模式)。使用RabbitMQ触发器后,FunctionGraph会定期轮询RabbitMQ实例指定交换机绑定的队列下的新消息,FunctionGraph将轮询得到的消息作为参数传递来调用函数,关于RabbitMQ触发器的事件源介绍请参见支持的事件源

前提条件

  • 已经创建函数,创建过程请参见创建函数
  • 创建RabbitMQ触发器,必须开启函数工作流VPC访问,请参见配置网络
  • 已经创建RabbitMQ实例,创建操作请参见购买RabbitMQ实例
  • 创建Vhost、Exchange和Queue。
    1. 创建RabbitMQ Vhost,创建操作请参见创建RabbitMQ Vhost
    2. 创建RabbitMQ Exchange,创建操作请参见创建RabbitMQ Exchange
    3. 创建RabbitMQ Queue,创建操作请参见创建RabbitMQ Queue
    4. 绑定RabbitMQ Exchange和RabbitMQ Queue,绑定操作请参见绑定RabbitMQ Exchange绑定RabbitMQ Queue

      Vhost是一个相对独立的RabbitMQ服务,用于管理Exchange、Queue。一个RabbitMQ实例下可以有多个Vhost,一个Vhost里可以有若干个Exchange和Queue,具体详情请参见RabbitMQ业务使用流程

  • 确认实例安全组规则是否配置正确。
    1. 在RabbitMQ实例详情页面的“基本信息 > 网络”,单击安全组名称,跳转到安全组页面。
    2. 选择“入方向规则”,查看安全组入方向规则。
      1. 实例未开启SSL开关

        ▪ 如果是VPC内访问,实例安全组入方向规则,需要允许端口5672的访问。

        ▪ 如果是公网访问,需要允许端口15672的访问。

      2. 实例已开启SSL开关

        ▪ 如果是VPC内访问,实例安全组入方向规则,需要允许端口5671的访问。

        ▪ 如果是公网访问,需要运行端口15671的访问。

创建RabbitMQ触发器

  1. 登录函数工作流控制台,在左侧的导航栏选择“函数 > 函数列表”。
  2. 选择待配置的函数,单击进入函数详情页。
  3. 选择“设置 > 触发器”,单击“创建触发器”,弹出“创建触发器”对话框。

    图1 创建触发器

  1. 设置以下信息。

    • 触发器类型:选择“分布式消息服务RabbitMQ版 (RABBITMQ)”。
    • *实例:选择已创建RabbitMQ实例。
    • *密码:填写创建RabbitMQ实例的密码。
    • *交换机名称:填写用户已创建的交换机名称,详情请参见创建RabbitMQ Exchange
    • 虚拟机名称:填写用户已创建的vhost,详情请参见创建RabbitMQ Vhost
    • *批处理大小:每次从Topic消费的消息数量。

  2. 单击“确定”,完成RabbitMQ触发器的创建。

开启函数流VPC访问后,需要在RabbitMQ服务安全组配置对应子网的权限。如何开启VPC访问请参见配置网络

配置RabbitMQ事件触发函数

  1. 返回函数工作流控制台,在左侧的导航栏选择“函数 > 函数列表”。
  2. 选择待配置的函数,单击进入函数详情页。
  3. 在函数详情页,选择函数版本。
  4. 在“代码”页签下,单击“测试”,弹出“配置测试事件”对话框。
  5. 填写如表1所示测试信息后,单击“保存”。

    表1 测试信息

    参数

    说明

    配置测试事件

    可创建新的测试事件也可编辑已有的测试事件。

    选择默认值:“创建新的测试事件”。

    事件模板

    选择“分布式消息服务 RabbitMQ版 (RABBITMQ)”模板,使用系统内置RabbitMQ事件模板。

    事件名称

    事件名称必须以大写或小写字母开头,支持字母(大写或小写),数字和下划线“_”(或中划线“-”),并以字母或数字结尾,长度为1-25个字符,例如kafka-123test。

    测试事件

    自动加载系统内置RabbitMQ事件模板,本例不做修改。

  1. 单击“测试”,可以得到函数运行结果,函数会返回输入RabbitMQ消息数据。