Tous les produits
Search
Centre de documentation

Container Service for Kubernetes:Trigger Knative services with EventBridge

Dernière mise à jour :Oct 13, 2026

Knative Eventing fournit un modèle d'événements complet pour l'intégration de sources d'événements externes. Déployez Knative Eventing dans votre cluster ACK et créez des déclencheurs pour acheminer les événements EventBridge vers des services Knative afin de gérer des charges de travail événementielles.

Prérequis

Fonctionnement

EventBridge reçoit des événements provenant de diverses sources. Configurez un bus d'événements, des règles et des cibles pour filtrer, transformer et acheminer les événements vers des services Knative en vue d'une consommation à la demande. Le schéma suivant illustre l'architecture.

Remarque

Vous pouvez connecter OSS à EventBridge en tant que source d'événements. Consultez la rubrique Événements OSS pour connaître les types d'événements pris en charge.

image

Étape 1 : Déployer les composants Eventing et EventBridge

Knative utilise EventBridge pour ses fonctionnalités événementielles, prenant en charge les sources d'événements Alibaba Cloud et le transfert d'événements.

  1. Connectez-vous à la console ACK. Dans le volet de navigation de gauche, cliquez sur Clusters.

  2. Sur la page Clusters, cliquez sur le nom de votre cluster. Dans le volet de navigation de gauche, cliquez sur Applications > Knative.

  3. Sous l'onglet Components, déployez les composants Eventing et EventBridge.

    1. Sous l'onglet Components, localisez le composant Eventing et cliquez sur Deploy dans la colonne Actions.

    2. Une fois Eventing déployé, localisez le composant EventBridge et cliquez sur Deploy dans la colonne Actions. Saisissez votre AccessKey ID et votre AccessKey secret, puis cliquez sur Confirm.

      Consultez la rubrique Créer une paire de clés AccessKey.

      Remarque

      Pour renforcer la sécurité de votre utilisateur RAM, associez un dispositif MFA pour une authentification secondaire lors de la connexion à la console ou lors de l'exécution d'opérations sensibles. Cela offre une couche de protection supplémentaire au-delà du nom d'utilisateur et du mot de passe. Pour plus d'informations, consultez la rubrique Associer un dispositif MFA à un utilisateur RAM.

    Si le Status des composants est Deployed, le déploiement a réussi.

Étape 2 : Créer un service Knative

Créez un service Knative nommé event-display qui journalise les événements reçus. Vous pouvez utiliser la console ACK ou kubectl.

Console

  1. Connectez-vous à la console ACK. Dans le volet de navigation de gauche, cliquez sur Clusters.

  2. Sur la page Clusters, cliquez sur le nom de votre cluster. Dans le volet de navigation de gauche, cliquez sur Applications > Knative.

  3. Sous l'onglet Services, cliquez sur Create from Template.

    Exemple :

    apiVersion: serving.knative.dev/v1
    kind: Service
    metadata:
      name: event-display
      namespace: default
    spec:
      template:
        spec:
          containers:
          - image: registry.cn-hangzhou.aliyuncs.com/knative-sample/event-display:20230207194118_3874dbd

    Sous l'onglet Services, un Status indiquant Success confirme que le service a été créé.

Kubectl

  1. Enregistrez le contenu suivant dans le fichier event-display.yaml et appliquez-le :

    apiVersion: serving.knative.dev/v1
    kind: Service
    metadata:
      name: event-display
      namespace: default
    spec:
      template:
        spec:
          containers:
          - image: registry.cn-hangzhou.aliyuncs.com/knative-sample/event-display:20230207194118_3874dbd
    kubectl apply -f event-display.yaml
  2. Vérifiez l'état du service Knative :

    kubectl get ksvc

    Résultat attendu :

    NAME            URL                                        LATESTCREATED         LATESTREADY           READY   REASON
    event-display   http://event-display.default.example.com   event-display-00001   event-display-00001   True    

Étape 3 : Créer un déclencheur

Console

  1. Sur la page Knative, cliquez sur l'onglet Services. Cliquez sur le service cible, puis sur l'onglet Trigger.

  2. Cliquez sur Create Trigger. Sur la page Configuration, définissez les paramètres suivants :

    Parameter

    Description

    Example

    Name

    Le nom du déclencheur.

    my-service-trigger

    Broker

    Sélectionnez EventBridge ou Others.

    EventBridge

    Event Source

    Sélectionnez une source d'événements.

    OSS

    Event Type

    Sélectionnez un type d'événement.

    oss:ActionTrail:ConsoleOperation

    Le déclencheur apparaît sous l'onglet Triggers.

Kubectl

  1. Enregistrez le contenu suivant dans le fichier my-service-trigger.yaml et appliquez-le :

    apiVersion: eventing.knative.dev/v1
    kind: Trigger
    metadata:
      name: my-service-trigger
    spec:
      broker: eventbridge-default-broker
      filter:
        attributes:
          source: acs.oss
          type: 'oss:ActionTrail:ConsoleOperation'
      subscriber:
        ref:
          apiVersion: serving.knative.dev/v1
          kind: Service
          name: event-display
          namespace: default
    • broker : le eventbridge-default-broker, correspondant au bus d'événements par défaut (default) dans EventBridge.

    • source : la source d'événements.

    • type : le type d'événement. Séparez plusieurs types par une virgule (,).

    • subscriber : le service Knative cible.

    kubectl apply -f my-service-trigger.yaml
  2. Vérifiez l'état du déclencheur :

     kubectl get triggers

    Résultat attendu :

    NAME                 BROKER                       SUBSCRIBER_URI                                   AGE   READY   REASON
    my-service-trigger   eventbridge-default-broker   http://event-display.default.svc.cluster.local   42h   True    

Étape 4 : Vérifier la consommation des événements

  1. Téléchargez un fichier dans votre bucket OSS.

    Remarque

    Le bucket OSS et EventBridge doivent se trouver dans la même région.

    ossutil cp <file_name> oss://<bucket_name>

    Après le téléchargement, EventBridge déclenche le service Knative pour consommer l'événement.

  2. Consultez la trace des événements.

    1. Connectez-vous à la console EventBridge. Dans le volet de navigation de gauche, cliquez sur Event Buses.

    2. Localisez le bus d'événements default et cliquez sur Event Tracking dans la colonne Actions. Sous l'onglet Query By Time Range, définissez une Time Range et cliquez sur Search.

    3. Recherchez l'événement dont la Event Source est Object Storage Service et dont le Event Type est Upload Object. Cliquez sur Event Trace dans la colonne Actions.

      Un statut de livraison Succeeded avec la réponse [200] confirme qu'EventBridge a livré l'événement.

      La page Event Trace affiche l'intégralité du statut de livraison.

  3. Vérifiez que le service Knative a consommé l'événement.

    1. Vérifiez la présence du pod créé pour consommer l'événement :

      kubectl get pod

      Résultat attendu :

      NAME                                              READY   STATUS    RESTARTS         AGE
      event-display-00001-deployment-56cc79****-z2vhv   2/2     Running   0                7s
    2. Consultez les journaux pour confirmer que le service Knative a enregistré l'événement :

      kubectl logs event-display-00001-deployment-56cc79****-z2vhv user-container

      Résultat attendu :

      {"data":{"eventVersion":"1.0","responseElements":{"requestId":"63E21F5FEE852133319101AD"},"eventSource":"acs:oss","eventTime":"2023-02-07T09:52:31.000Z","requestParameters":{"sourceIPAddress":"XX.XXX.XX.XXX"},"eventName":"ObjectCreated:PutObject","userIdentity":{"principalId":"1118324452360952"},"region":"cn-hangzhou","oss":{"bucket":{"name":"knative","arn":"acs:oss:cn-hangzhou:1581204543170042:knative","virtualBucket":"","ownerIdentity":"1581204543170042"},"ossSchemaVersion":"1.0","object":{"size":225496,"objectMeta":{"mimeType":"application/octet-stream"},"deltaSize":0,"eTag":"B350C082843DAC7E9E634193437EBA30","key":"demo.data"}}}}

    Le résultat confirme que le service Knative a consommé l'événement de téléchargement de fichier OSS.