5.5. Déclencheurs
5.5.1. Vue d'ensemble des déclencheurs
Les courtiers peuvent être utilisés en combinaison avec des déclencheurs pour transmettre des événements d'une source d'événements à un puits d'événements. Les événements sont envoyés d'une source d'événements à un broker sous la forme d'une requête HTTP POST
. Une fois que les événements sont entrés dans le courtier, ils peuvent être filtrés par les attributs CloudEvent à l'aide de déclencheurs, puis envoyés sous la forme d'une requête HTTP POST
à un puits d'événements.
Si vous utilisez un courtier Knative pour Apache Kafka, vous pouvez configurer l'ordre de livraison des événements des déclencheurs aux puits d'événements. Voir Configuration de l'ordre de livraison des événements pour les déclencheurs.
5.5.1.1. Configuration de l'ordre de livraison des événements pour les déclencheurs
Si vous utilisez un courtier Kafka, vous pouvez configurer l'ordre de livraison des événements des déclencheurs aux puits d'événements.
Conditions préalables
- OpenShift Serverless Operator, Knative Eventing et Knative broker implementation for Apache Kafka sont installés sur votre cluster OpenShift Container Platform.
- L'utilisation du courtier Kafka est activée sur votre cluster et vous avez créé un courtier Kafka.
- Vous avez créé un projet ou avez accès à un projet avec les rôles et autorisations appropriés pour créer des applications et d'autres charges de travail dans OpenShift Container Platform.
-
Vous avez installé le CLI OpenShift (
oc
).
Procédure
Créer ou modifier un objet
Trigger
et définir l'annotationkafka.eventing.knative.dev/delivery.order
:apiVersion: eventing.knative.dev/v1 kind: Trigger metadata: name: <trigger_name> annotations: kafka.eventing.knative.dev/delivery.order: ordered ...
Les garanties de livraison aux consommateurs prises en charge sont les suivantes :
unordered
- Un consommateur non ordonné est un consommateur non bloquant qui délivre des messages non ordonnés, tout en préservant une bonne gestion des décalages.
ordered
Un consommateur ordonné est un consommateur bloquant par partition qui attend une réponse positive de l'abonné CloudEvent avant de délivrer le message suivant de la partition.
La garantie de commande par défaut est
unordered
.
Appliquer l'objet
Trigger
:$ oc apply -f <filename>
5.5.1.2. Prochaines étapes
- Configurez les paramètres de livraison d'événements qui sont appliqués dans les cas où un événement n'est pas livré à un récepteur d'événements. Voir Exemples de configuration des paramètres de livraison d'événements.
5.5.2. Création de déclencheurs
Les courtiers peuvent être utilisés en combinaison avec des déclencheurs pour transmettre des événements d'une source d'événements à un puits d'événements. Les événements sont envoyés d'une source d'événements à un broker sous la forme d'une requête HTTP POST
. Une fois que les événements sont entrés dans le courtier, ils peuvent être filtrés par les attributs CloudEvent à l'aide de déclencheurs, puis envoyés sous la forme d'une requête HTTP POST
à un puits d'événements.
5.5.2.1. Création d'un déclencheur à l'aide de la perspective de l'administrateur
L'utilisation de la console web d'OpenShift Container Platform offre une interface utilisateur rationalisée et intuitive pour créer un déclencheur. Une fois que Knative Eventing est installé sur votre cluster et que vous avez créé un broker, vous pouvez créer un trigger en utilisant la console web.
Conditions préalables
- OpenShift Serverless Operator et Knative Eventing sont installés sur votre cluster OpenShift Container Platform.
- Vous vous êtes connecté à la console web et vous vous trouvez dans la perspective Administrator.
- Vous disposez des droits d'administrateur de cluster pour OpenShift Container Platform.
- Vous avez créé un courtier Knative.
- Vous avez créé un service Knative à utiliser en tant qu'abonné.
Procédure
-
Dans la perspective Administrator de la console web OpenShift Container Platform, naviguez vers Serverless
Eventing. - Dans l'onglet Broker, sélectionnez le menu Options pour le courtier auquel vous voulez ajouter un déclencheur.
- Cliquez sur Add Trigger dans la liste.
- Dans la boîte de dialogue Add Trigger, sélectionnez un Subscriber pour le déclencheur. L'abonné est le service Knative qui recevra les événements du courtier.
- Cliquez sur Add.
5.5.2.2. Création d'un déclencheur à l'aide de la perspective du développeur
L'utilisation de la console web d'OpenShift Container Platform offre une interface utilisateur rationalisée et intuitive pour créer un déclencheur. Une fois que Knative Eventing est installé sur votre cluster et que vous avez créé un broker, vous pouvez créer un trigger en utilisant la console web.
Conditions préalables
- OpenShift Serverless Operator, Knative Serving et Knative Eventing sont installés sur votre cluster OpenShift Container Platform.
- Vous vous êtes connecté à la console web.
- Vous avez créé un projet ou avez accès à un projet avec les rôles et autorisations appropriés pour créer des applications et d'autres charges de travail dans OpenShift Container Platform.
- Vous avez créé un courtier et un service Knative ou un autre puits d'événements pour vous connecter au déclencheur.
Procédure
- Dans la perspective Developer, naviguez jusqu'à la page Topology.
- Survolez le courtier pour lequel vous souhaitez créer un déclencheur et faites glisser la flèche. L'option Add Trigger s'affiche.
- Cliquez sur Add Trigger.
- Sélectionnez votre évier dans la liste Subscriber.
- Cliquez sur Add.
Vérification
- Une fois l'abonnement créé, vous pouvez le visualiser sur la page Topology, où il est représenté par une ligne qui relie le courtier au puits d'événements.
Suppression d'un déclencheur
- Dans la perspective Developer, naviguez jusqu'à la page Topology.
- Cliquez sur le déclencheur que vous souhaitez supprimer.
- Dans le menu contextuel de Actions, sélectionnez Delete Trigger.
5.5.2.3. Création d'un déclencheur à l'aide de la CLI Knative
Vous pouvez utiliser la commande kn trigger create
pour créer un déclencheur.
Conditions préalables
- OpenShift Serverless Operator et Knative Eventing sont installés sur votre cluster OpenShift Container Platform.
-
Vous avez installé le CLI Knative (
kn
). - Vous avez créé un projet ou avez accès à un projet avec les rôles et autorisations appropriés pour créer des applications et d'autres charges de travail dans OpenShift Container Platform.
Procédure
Créer un déclencheur :
$ kn trigger create <trigger_name> --broker <broker_name> --filter <key=value> --sink <sink_name>
Vous pouvez également créer un déclencheur et créer simultanément le courtier
default
à l'aide de l'injection de courtier :kn trigger create <trigger_name> --inject-broker --filter <key=value> --sink <sink_name>
Par défaut, les déclencheurs transmettent tous les événements envoyés à un courtier aux puits qui sont abonnés à ce courtier. L'utilisation de l'attribut
--filter
pour les déclencheurs vous permet de filtrer les événements d'un courtier, de sorte que les abonnés ne reçoivent qu'un sous-ensemble d'événements en fonction des critères que vous avez définis.
5.5.3. Liste des déclencheurs à partir de la ligne de commande
L'utilisation du CLI Knative (kn
) pour lister les déclencheurs offre une interface utilisateur rationalisée et intuitive.
5.5.3.1. Lister les déclencheurs en utilisant le CLI Knative
Vous pouvez utiliser la commande kn trigger list
pour dresser la liste des déclencheurs existants dans votre cluster.
Conditions préalables
- OpenShift Serverless Operator et Knative Eventing sont installés sur votre cluster OpenShift Container Platform.
-
Vous avez installé le CLI Knative (
kn
).
Procédure
Imprimer une liste des déclencheurs disponibles :
$ kn trigger list
Exemple de sortie
NAME BROKER SINK AGE CONDITIONS READY REASON email default ksvc:edisplay 4s 5 OK / 5 True ping default ksvc:edisplay 32s 5 OK / 5 True
Facultatif : Imprimer une liste de déclencheurs au format JSON :
$ kn trigger list -o json
5.5.4. Décrire les déclencheurs à partir de la ligne de commande
L'utilisation du CLI Knative (kn
) pour décrire les déclencheurs offre une interface utilisateur rationalisée et intuitive.
5.5.4.1. Décrire un déclencheur à l'aide de la CLI Knative
Vous pouvez utiliser la commande kn trigger describe
pour imprimer des informations sur les déclencheurs existants dans votre cluster en utilisant le CLI Knative.
Conditions préalables
- OpenShift Serverless Operator et Knative Eventing sont installés sur votre cluster OpenShift Container Platform.
-
Vous avez installé le CLI Knative (
kn
). - Vous avez créé un déclencheur.
Procédure
Entrez la commande :
$ kn trigger describe <trigger_name>
Exemple de sortie
Name: ping Namespace: default Labels: eventing.knative.dev/broker=default Annotations: eventing.knative.dev/creator=kube:admin, eventing.knative.dev/lastModifier=kube:admin Age: 2m Broker: default Filter: type: dev.knative.event Sink: Name: edisplay Namespace: default Resource: Service (serving.knative.dev/v1) Conditions: OK TYPE AGE REASON ++ Ready 2m ++ BrokerReady 2m ++ DependencyReady 2m ++ Subscribed 2m ++ SubscriberResolved 2m
5.5.5. Connexion d'un déclencheur à un puits
Vous pouvez connecter un déclencheur à un puits, de sorte que les événements provenant d'un courtier soient filtrés avant d'être envoyés au puits. Un puits connecté à un déclencheur est configuré en tant que subscriber
dans la spécification des ressources de l'objet Trigger
.
Exemple d'un objet Trigger
connecté à un puits Apache Kafka
apiVersion: eventing.knative.dev/v1 kind: Trigger metadata: name: <trigger_name> 1 spec: ... subscriber: ref: apiVersion: eventing.knative.dev/v1alpha1 kind: KafkaSink name: <kafka_sink_name> 2
5.5.6. Filtrer les déclencheurs à partir de la ligne de commande
L'utilisation de la CLI Knative (kn
) pour filtrer les événements à l'aide de déclencheurs offre une interface utilisateur simplifiée et intuitive. Vous pouvez utiliser la commande kn trigger create
, ainsi que les drapeaux appropriés, pour filtrer les événements à l'aide de déclencheurs.
5.5.6.1. Filtrer les événements avec des déclencheurs en utilisant le CLI Knative
Dans l'exemple de déclenchement suivant, seuls les événements ayant l'attribut type: dev.knative.samples.helloworld
sont envoyés au récepteur d'événements :
$ kn trigger create <trigger_name> --broker <broker_name> --filter type=dev.knative.samples.helloworld --sink ksvc:<service_name>
Vous pouvez également filtrer les événements en utilisant plusieurs attributs. L'exemple suivant montre comment filtrer les événements à l'aide des attributs type, source et extension :
$ kn trigger create <trigger_name> --broker <broker_name> --sink ksvc:<service_name> \ --filter type=dev.knative.samples.helloworld \ --filter source=dev.knative.samples/helloworldsource \ --filter myextension=my-extension-value
5.5.7. Mise à jour des déclencheurs à partir de la ligne de commande
L'utilisation du CLI Knative (kn
) pour mettre à jour les déclencheurs offre une interface utilisateur rationalisée et intuitive.
5.5.7.1. Mise à jour d'un déclencheur à l'aide de la CLI Knative
Vous pouvez utiliser la commande kn trigger update
avec certains drapeaux pour mettre à jour les attributs d'un déclencheur.
Conditions préalables
- OpenShift Serverless Operator et Knative Eventing sont installés sur votre cluster OpenShift Container Platform.
-
Vous avez installé le CLI Knative (
kn
). - Vous avez créé un projet ou avez accès à un projet avec les rôles et autorisations appropriés pour créer des applications et d'autres charges de travail dans OpenShift Container Platform.
Procédure
Mettre à jour un déclencheur :
kn trigger update <trigger_name> --filter <key=value> --sink <sink_name> [flags] (en anglais)
Vous pouvez mettre à jour un déclencheur pour filtrer les attributs d'événement exacts qui correspondent aux événements entrants. Par exemple, en utilisant l'attribut
type
:$ kn trigger update <trigger_name> --filter type=knative.dev.event
Vous pouvez supprimer un attribut de filtre d'un déclencheur. Par exemple, vous pouvez supprimer l'attribut de filtre avec la clé
type
:kn trigger update <trigger_name> --filter type-
Vous pouvez utiliser le paramètre
--sink
pour modifier le puits d'événement d'un déclencheur :$ kn trigger update <trigger_name> --sink ksvc:my-event-sink
5.5.8. Suppression de déclencheurs à partir de la ligne de commande
L'utilisation de la CLI Knative (kn
) pour supprimer un déclencheur offre une interface utilisateur rationalisée et intuitive.
5.5.8.1. Suppression d'un déclencheur à l'aide de la CLI Knative
Vous pouvez utiliser la commande kn trigger delete
pour supprimer un déclencheur.
Conditions préalables
- OpenShift Serverless Operator et Knative Eventing sont installés sur votre cluster OpenShift Container Platform.
-
Vous avez installé le CLI Knative (
kn
). - Vous avez créé un projet ou avez accès à un projet avec les rôles et autorisations appropriés pour créer des applications et d'autres charges de travail dans OpenShift Container Platform.
Procédure
Supprimer un déclencheur :
kn trigger delete <trigger_name>
Vérification
Dresser la liste des déclencheurs existants :
$ kn trigger list
Vérifiez que le déclencheur n'existe plus :
Exemple de sortie
No triggers found.