触发一个函数
触发一个函数意味着你通过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)
- 在集群模式下运行该函数。
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
- 分配一个消费者来监听输出主题,以接收来自
myfunc
函数的消息,使用pulsar-client consume
命令。
bin/pulsar-client consume persistent://public/default/out \
--subscription-name my-subscription \
--num-messages 0 # Listen indefinitely
-
触发函数。
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