Skip to main content
Version: 4.0.x

触发一个函数

触发一个函数意味着你通过CLI向其中一个输入主题生成消息来调用一个函数。你可以随时使用trigger命令来触发一个函数。

tip

使用pulsar-admin CLI,您可以在不使用pulsar-client工具或特定语言的客户端库的情况下向函数发送消息。

要学习如何触发一个函数,你可以从一个Python函数开始,该函数根据输入返回一个简单的字符串,如下所示。

# myfunc.py
def process(input):
return "This function has been triggered with a value of {0}".format(input)
  1. 在集群模式下运行该函数。
bin/pulsar-admin functions create \
--tenant public \
--namespace default \
--name myfunc \
--py myfunc.py \
--classname myfunc \
--inputs persistent://public/default/in \
--output persistent://public/default/out
  1. 分配一个消费者来监听输出主题,以接收来自myfunc函数的消息,使用pulsar-client consume命令。
bin/pulsar-client consume persistent://public/default/out \
--subscription-name my-subscription \
--num-messages 0 # Listen indefinitely
  1. 触发函数。

    bin/pulsar-admin functions trigger \
    --tenant public \
    --namespace default \
    --name myfunc \
    --trigger-value "hello world"
    tip

    trigger命令中,不需要主题信息。您只需指定有关函数的基本信息,例如租户、命名空间和函数名称。

监听输出主题的消费者在日志中生成如下内容。

----- got message -----
This function has been triggered with a value of hello world