5.7. Abonnements


5.7.1. Création d'abonnements

Après avoir créé un canal et un puits d'événements, vous pouvez créer un abonnement pour permettre la livraison d'événements. Les abonnements sont créés en configurant un objet Subscription, qui spécifie le canal et le puits (également connu sous le nom de subscriber) vers lesquels les événements doivent être acheminés.

5.7.1.1. Création d'un abonnement à l'aide de la perspective de l'administrateur

Après avoir créé un canal et un puits d'événements, également appelé subscriber, vous pouvez créer un abonnement pour permettre la livraison d'événements. Les abonnements sont créés en configurant un objet Subscription, qui spécifie le canal et l'abonné à qui livrer les événements. Vous pouvez également spécifier certaines options propres à l'abonné, telles que la manière de gérer les échecs.

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 canal 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 Channel, sélectionnez le menu Options kebab pour la chaîne à laquelle vous souhaitez ajouter un abonnement.
  3. Cliquez sur Add Subscription dans la liste.
  4. Dans la boîte de dialogue Add Subscription, sélectionnez un Subscriber pour l'abonnement. L'abonné est le service Knative qui reçoit les événements du canal.
  5. Cliquez sur Add.

5.7.1.2. Créer un abonnement à l'aide de la perspective du développeur

Une fois que vous avez créé un canal et un puits d'événements, vous pouvez créer un abonnement pour activer la livraison d'événements. L'utilisation de la console web d'OpenShift Container Platform offre une interface utilisateur rationalisée et intuitive pour créer un abonnement.

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 puits d'événements, tel qu'un service Knative, et un canal.
  • 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

  1. Dans la perspective Developer, naviguez jusqu'à la page Topology.
  2. Créez un abonnement en utilisant l'une des méthodes suivantes :

    1. Survolez le canal pour lequel vous souhaitez créer un abonnement et faites glisser la flèche. L'option Add Subscription s'affiche.

      Create a subscription for the channel
      1. Sélectionnez votre évier dans la liste Subscriber.
      2. Cliquez sur Add.
    2. Si le service est disponible dans la vue Topology sous le même espace de noms ou projet que le canal, cliquez sur le canal pour lequel vous souhaitez créer un abonnement et faites glisser la flèche directement sur un service pour créer immédiatement un abonnement du canal à ce service.

Vérification

  • Une fois l'abonnement créé, il est représenté par une ligne reliant le canal au service dans la vue Topology:

    Subscription in the Topology view

5.7.1.3. Création d'un abonnement à l'aide de YAML

Après avoir créé un canal et un puits d'événements, vous pouvez créer un abonnement pour permettre la livraison d'événements. La création de ressources Knative à l'aide de fichiers YAML utilise une API déclarative, qui vous permet de décrire les abonnements de manière déclarative et reproductible. Pour créer un abonnement à l'aide de YAML, vous devez créer un fichier YAML qui définit un objet Subscription, puis l'appliquer à l'aide de la commande oc apply.

Conditions préalables

  • OpenShift Serverless Operator et Knative Eventing sont installés sur le cluster.
  • Installez le CLI OpenShift (oc).
  • 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 objet Subscription:

    • Créez un fichier YAML et copiez-y l'exemple de code suivant :

      apiVersion: messaging.knative.dev/v1beta1
      kind: Subscription
      metadata:
        name: my-subscription 1
        namespace: default
      spec:
        channel: 2
          apiVersion: messaging.knative.dev/v1beta1
          kind: Channel
          name: example-channel
        delivery: 3
          deadLetterSink:
            ref:
              apiVersion: serving.knative.dev/v1
              kind: Service
              name: error-handler
        subscriber: 4
          ref:
            apiVersion: serving.knative.dev/v1
            kind: Service
            name: event-display
      1
      Nom de l'abonnement.
      2
      Paramètres de configuration pour le canal auquel l'abonnement se connecte.
      3
      Paramètres de configuration pour la livraison d'événements. Ce paramètre indique à l'abonnement ce qu'il advient des événements qui ne peuvent pas être livrés à l'abonné. Lorsque cette option est configurée, les événements qui n'ont pas pu être consommés sont envoyés à deadLetterSink. L'événement est abandonné, aucune nouvelle livraison de l'événement n'est tentée et une erreur est consignée dans le système. La valeur deadLetterSink doit être une destination.
      4
      Paramètres de configuration de l'abonné. Il s'agit du puits d'événements vers lequel les événements sont acheminés à partir du canal.
    • Appliquer le fichier YAML :

      $ oc apply -f <filename>

5.7.1.4. Créer un abonnement en utilisant le CLI Knative

Après avoir créé un canal et un puits d'événements, vous pouvez créer un abonnement pour permettre la livraison d'événements. L'utilisation de la CLI Knative (kn) pour créer des abonnements offre une interface utilisateur plus rationnelle et intuitive que la modification directe des fichiers YAML. Vous pouvez utiliser la commande kn subscription create avec les drapeaux appropriés pour créer un abonnement.

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 abonnement pour connecter un puits à un canal :

    $ kn subscription create <subscription_name> \
      --channel <group:version:kind>:<channel_name> \ 1
      --sink <sink_prefix>:<sink_name> \ 2
      --sink-dead-letter <sink_prefix>:<sink_name> 3
    1
    --channel spécifie la source des événements du nuage à traiter. Vous devez fournir le nom du canal. Si vous n'utilisez pas le canal par défaut InMemoryChannel qui est soutenu par la ressource personnalisée Channel, vous devez préfixer le nom du canal par <group:version:kind> pour le type de canal spécifié. Par exemple, il s'agira de messaging.knative.dev:v1beta1:KafkaChannel pour un canal soutenu par Apache Kafka.
    2
    --sink spécifie la destination cible à laquelle l'événement doit être livré. Par défaut, le site <sink_name> est interprété comme un service Knative de ce nom, dans le même espace de noms que l'abonnement. Vous pouvez spécifier le type de l'évier en utilisant l'un des préfixes suivants :
    ksvc
    Un service Knative.
    channel
    Un canal qui doit être utilisé comme destination. Seuls les types de canaux par défaut peuvent être référencés ici.
    broker
    Un courtier en concours complet.
    3
    Facultatif : --sink-dead-letter est un drapeau facultatif qui peut être utilisé pour spécifier un puits vers lequel les événements doivent être envoyés dans les cas où les événements ne sont pas livrés. Pour plus d'informations, voir la documentation OpenShift Serverless Event delivery.

    Example command

    $ kn subscription create mysubscription --channel mychannel --sink ksvc:event-display

    Exemple de sortie

    Subscription 'mysubscription' created in namespace 'default'.

Vérification

  • Pour confirmer que le canal est connecté au puits d'événements, ou subscriber, par un abonnement, dressez la liste des abonnements existants et inspectez la sortie :

    $ kn subscription list

    Exemple de sortie

    NAME            CHANNEL             SUBSCRIBER           REPLY   DEAD LETTER SINK   READY   REASON
    mysubscription   Channel:mychannel   ksvc:event-display                              True

Suppression d'un abonnement

  • Supprimer un abonnement :

    kn subscription delete <nom_de_l'abonnement>

5.7.1.5. Prochaines étapes

5.7.2. Gestion des abonnements

5.7.2.1. Décrire les abonnements en utilisant le CLI Knative

Vous pouvez utiliser la commande kn subscription describe pour imprimer des informations sur un abonnement dans le terminal en utilisant la CLI Knative (kn). L'utilisation de l'interface de programmation Knative pour décrire les abonnements offre une interface utilisateur plus rationnelle et plus intuitive que l'affichage direct des fichiers YAML.

Conditions préalables

  • Vous avez installé le CLI Knative (kn).
  • Vous avez créé un abonnement dans votre cluster.

Procédure

  • Décrire un abonnement :

    $ kn subscription describe <nom_de_l'abonnement>

    Exemple de sortie

    Name:            my-subscription
    Namespace:       default
    Annotations:     messaging.knative.dev/creator=openshift-user, messaging.knative.dev/lastModifier=min ...
    Age:             43s
    Channel:         Channel:my-channel (messaging.knative.dev/v1)
    Subscriber:
      URI:           http://edisplay.default.example.com
    Reply:
      Name:          default
      Resource:      Broker (eventing.knative.dev/v1)
    DeadLetterSink:
      Name:          my-sink
      Resource:      Service (serving.knative.dev/v1)
    
    Conditions:
      OK TYPE                  AGE REASON
      ++ Ready                 43s
      ++ AddedToChannel        43s
      ++ ChannelReady          43s
      ++ ReferencesResolved    43s

5.7.2.2. Lister les abonnements en utilisant le CLI Knative

Vous pouvez utiliser la commande kn subscription list pour lister les abonnements existants sur votre cluster en utilisant la CLI Knative (kn). L'utilisation de la CLI Knative pour lister les abonnements offre une interface utilisateur simplifiée et intuitive.

Conditions préalables

  • Vous avez installé le CLI Knative (kn).

Procédure

  • Liste des abonnements sur votre cluster :

    $ kn subscription list

    Exemple de sortie

    NAME             CHANNEL             SUBSCRIBER           REPLY   DEAD LETTER SINK   READY   REASON
    mysubscription   Channel:mychannel   ksvc:event-display                              True

5.7.2.3. Mise à jour des abonnements à l'aide du CLI Knative

Vous pouvez utiliser la commande kn subscription update ainsi que les drapeaux appropriés pour mettre à jour un abonnement à partir du terminal en utilisant le CLI Knative (kn). L'utilisation de la CLI Knative pour mettre à jour les abonnements offre une interface utilisateur plus rationnelle et intuitive que la mise à jour directe des fichiers YAML.

Conditions préalables

  • Vous avez installé le CLI Knative (kn).
  • Vous avez créé un abonnement.

Procédure

  • Mettre à jour un abonnement :

    $ kn subscription update <subscription_name> \
      --sink <sink_prefix>:<sink_name> \ 1
      --sink-dead-letter <sink_prefix>:<sink_name> 2
    1
    --sink spécifie la destination cible mise à jour à laquelle l'événement doit être transmis. Vous pouvez spécifier le type de puits en utilisant l'un des préfixes suivants :
    ksvc
    Un service Knative.
    channel
    Un canal qui doit être utilisé comme destination. Seuls les types de canaux par défaut peuvent être référencés ici.
    broker
    Un courtier en concours complet.
    2
    Facultatif : --sink-dead-letter est un drapeau facultatif qui peut être utilisé pour spécifier un puits vers lequel les événements doivent être envoyés dans les cas où les événements ne sont pas livrés. Pour plus d'informations, voir la documentation OpenShift Serverless Event delivery.

    Example command

    $ kn subscription update mysubscription --sink ksvc:event-display

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.