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.

Broker event delivery overview

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

  1. Créer ou modifier un objet Trigger et définir l'annotation kafka.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.

  2. Appliquer l'objet Trigger:

    $ oc apply -f <filename>

5.5.1.2. Prochaines étapes

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.

Broker event delivery overview

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

  1. Dans la perspective Administrator de la console web OpenShift Container Platform, naviguez vers Serverless Eventing.
  2. Dans l'onglet Broker, sélectionnez le menu Options kebab pour le courtier auquel vous voulez ajouter un déclencheur.
  3. Cliquez sur Add Trigger dans la liste.
  4. 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.
  5. 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

  1. Dans la perspective Developer, naviguez jusqu'à la page Topology.
  2. Survolez le courtier pour lequel vous souhaitez créer un déclencheur et faites glisser la flèche. L'option Add Trigger s'affiche.
  3. Cliquez sur Add Trigger.
  4. Sélectionnez votre évier dans la liste Subscriber.
  5. 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

  1. Dans la perspective Developer, naviguez jusqu'à la page Topology.
  2. Cliquez sur le déclencheur que vous souhaitez supprimer.
  3. 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

  1. 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

  2. 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

1
Le nom du déclencheur connecté à l'évier.
2
Le nom d'un objet KafkaSink.

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

  1. Dresser la liste des déclencheurs existants :

    $ kn trigger list
  2. Vérifiez que le déclencheur n'existe plus :

    Exemple de sortie

    No triggers found.

Red Hat logoGithubRedditYoutubeTwitter

Apprendre

Essayez, achetez et vendez

Communautés

À propos de la documentation Red Hat

Nous aidons les utilisateurs de Red Hat à innover et à atteindre leurs objectifs grâce à nos produits et services avec un contenu auquel ils peuvent faire confiance.

Rendre l’open source plus inclusif

Red Hat s'engage à remplacer le langage problématique dans notre code, notre documentation et nos propriétés Web. Pour plus de détails, consultez leBlog Red Hat.

À propos de Red Hat

Nous proposons des solutions renforcées qui facilitent le travail des entreprises sur plusieurs plates-formes et environnements, du centre de données central à la périphérie du réseau.

© 2024 Red Hat, Inc.