Trigger
Consume messages periodically from Pulsar topics and create one execution per batch.
Note that you don't need an extra task to consume the message from the event trigger. The trigger will automatically consume messages and you can retrieve their content in your flow using the {{ trigger.uri }}
variable. If you would like to consume each message from a Pulsar topic in real-time and create one execution per message, you can use the io.kestra.plugin.pulsar.RealtimeTrigger instead.
type: "io.kestra.plugin.pulsar.Trigger"
id: pulsar_trigger
namespace: company.team
tasks:
- id: log
type: io.kestra.plugin.core.log.Log
message: "{{ trigger.value }}"
triggers:
- id: trigger
type: io.kestra.plugin.pulsar.Trigger
interval: PT30S
topic: kestra_trigger
uri: pulsar://localhost:26650
deserializer: JSON
subscriptionName: kestra_trigger_sub
YES
STRING
STRING
JSON
BYTES
Deserializer used for the value.
YES
PT2S
duration
Duration waiting for record to be polled.
If no records are available, the maximum wait to wait for a new record.
YES
Exclusive
Exclusive
Shared
Failover
Key_Shared
The subscription type.
YES
Pulsar topic(s) where to consume messages from.
Can be a string or a list of strings to consume from multiple topics.
YES
Authentication token.
Authentication token that can be required by some providers such as Clever Cloud.
YES
The consumer name.
YES
Add all the properties in the provided map to the consumer.
YES
Add a public encryption key to the producer/consumer.
YES
Earliest
Latest
Earliest
The position of a subscription to the topic.
NO
60
duration
Interval between polling.
The interval between 2 different polls of schedule, this can avoid to overload the remote system with too many calls. For most of the triggers that depend on external systems, a minimal interval must be at least PT30S. See ISO_8601 Durations for more information of available interval values.
YES
duration
The maximum duration waiting for new record.
It's not a hard limit and is evaluated every second.
YES
YES
JSON string of the topic's schema
Required for connecting with topics with a defined schema and strict schema checking
YES
NONE
NONE
AVRO
JSON
The schema type of the topic
Can be one of NONE, AVRO or JSON. None means there will be no schema enforced.
NO
CREATED
RUNNING
PAUSED
RESTARTED
KILLING
SUCCESS
WARNING
FAILED
KILLED
CANCELLED
QUEUED
RETRYING
RETRIED
SKIPPED
List of execution states after which a trigger should be stopped (a.k.a. disabled).
YES
The subscription name.
Using subscription name, we will fetch only records that haven't been consumed yet.
NO
TLS authentication options.
You need to use "pulsar+ssl://" in serviceUrl to enable TLS support.
YES
Connection URLs.
You need to specify a Pulsar protocol URL.
- Example of localhost:
pulsar://localhost: 6650
- If you have multiple brokers:
pulsar://localhost: 6650,localhost: 6651,localhost: 6652
- If you use TLS authentication:
pulsar+ssl://pulsar.us-west.example.com: 6651
Number of messages consumed.
uri
URI of a Kestra internal storage file containing the consumed messages.
YES
The ca certificate.
Must be a base64-encoded pem file.
YES
The client certificate.
Must be a base64-encoded pem file.
YES
The key certificate.
Must be a base64-encoded pem file.