Tous les produits
Search
Centre de documentation

Function Compute:Déclencheurs Kafka

Dernière mise à jour :Sep 09, 2026

Les déclencheurs ApsaraMQ for Kafka appellent des fonctions Function Compute lorsque des messages sont publiés sur un topic Kafka, ce qui permet un traitement piloté par les événements sans interrogation (polling).

Fonctionnement

ApsaraMQ for Kafka s'intègre à Function Compute via EventBridge. Lorsque vous créez un déclencheur dans la console Function Compute, FC crée automatiquement des flux d'événements dans EventBridge en fonction de la configuration du déclencheur.

Une fois activé, le déclencheur surveille le topic spécifié. Lorsqu'un message est publié sur ApsaraMQ for Kafka, EventBridge transmet un ou plusieurs messages par lot à la fonction associée, selon vos paramètres de lot.

Limites

  • L'instance ApsaraMQ for Kafka doit se trouver dans la même région que la fonction.

  • Si le nombre de flux d'événements atteint la limite supérieure, aucun autre déclencheur Kafka ne peut être créé. Pour connaître cette limite, consultez les Limites.

Prérequis

Avant de commencer, assurez-vous d'avoir :

Étape 1 : Créer un déclencheur

  1. Connectez-vous à la console Function Compute et ouvrez la fonction cible.

  2. Dans l'onglet Configurations, accédez à la page Triggers et cliquez sur Create Trigger.

  3. Configurez les paramètres du déclencheur décrits dans le tableau suivant, puis cliquez sur OK.

image

Paramètre Obligatoire Description Exemple
Consumer offset Oui Le point à partir duquel EventBridge commence à extraire les messages. Earliest Offset : commence par le message disponible le plus ancien. Latest Offset : commence uniquement par les nouveaux messages. Earliest Offset
Invocation method Oui Méthode d'appel de la fonction lorsqu'un événement ou un lot d'événements est transmis. Sync Invocation : attend une réponse avant de traiter le lot suivant ; la limite de charge utile est de 32 Mo. Consultez l'appel synchrone. Async Invocation : renvoie immédiatement une réponse et passe au lot suivant ; la limite de charge utile est de 128 Ko. Consultez l'appel asynchrone. Sync Invocation
Max. Delivery Concurrency Non Nombre maximal de messages Kafka transmis simultanément à Function Compute. Valeurs valides : 1–300. Disponible uniquement pour l'option Sync Invocation. Pour augmenter cette limite, accédez au Quota Center of EventBridge, recherchez EventStreaming FC Sink Maximum Concurrent Number of Synchronous Posting et cliquez sur Apply. 1

Pour les paramètres avancés tels que les paramètres de transmission, les politiques de nouvelle tentative et les files d'attente de lettres mortes, consultez les fonctionnalités avancées des déclencheurs.

Étape 2 : (Facultatif) Configurer les paramètres de test

Le déclencheur transmet les messages Kafka à la fonction via le paramètre event. Pour tester la fonction sans publier de message réel, configurez manuellement un événement de test qui simule la charge utile du déclencheur.

Remarque : Le test simulé est utile pour valider votre logique d'analyse, mais il ne teste pas l'intégralité du pipeline du déclencheur. Pour vérifier le comportement de bout en bout, utilisez un message Kafka réel comme décrit à l'étape 3.
  1. Dans l'onglet Code, cliquez sur l'image.png icône située à côté de Test Function et sélectionnez Configure Test Parameters.

  2. Dans le panneau Configure Test Parameters, cliquez sur Create New Test Event ou Modify Existing Test Event, saisissez un nom et le contenu de l'événement, puis cliquez sur OK.

L'exemple suivant montre la structure de l'event pour deux messages groupés :

[
    {
        "specversion": "1.0",
        "id": "8e215af8-ca18-4249-8645-f96c1026****",
        "source": "acs:alikafka",
        "type": "alikafka:Topic:Message",
        "subject": "acs:alikafka_pre-cn-i7m2t7t1****:topic:mytopic",
        "datacontenttype": "application/json; charset=utf-8",
        "time": "2022-06-23T02:49:51.589Z",
        "aliyunaccountid": "164901546557****",
        "data": {
            "topic": "****",
            "partition": 7,
            "offset": 25,
            "timestamp": 1655952591589,
            "headers": {
                "headers": [],
                "isReadOnly": false
            },
            "key": "keytest",
            "value": "hello kafka msg"
        }
    },
    {
        "specversion": "1.0",
        "id": "8e215af8-ca18-4249-8645-f96c1026****",
        "source": "acs:alikafka",
        "type": "alikafka:Topic:Message",
        "subject": "acs:alikafka_pre-cn-i7m2t7t1****:topic:mytopic",
        "datacontenttype": "application/json; charset=utf-8",
        "time": "2022-06-23T02:49:51.589Z",
        "aliyunaccountid": "164901546557****",
        "data": {
            "topic": "****",
            "partition": 7,
            "offset": 25,
            "timestamp": 1655952591589,
            "headers": {
                "headers": [],
                "isReadOnly": false
            },
            "key": "keytest",
            "value": "hello kafka msg"
        }
    }
]

L'objet data contient les champs spécifiques à Kafka :

Champ Type Exemple Description
topic String TopicName Nom du topic.
partition Int 1 Numéro de la partition à partir de laquelle le message a été consommé.
offset Int 0 Décalage (offset) du message au sein de la partition.
timestamp String 1655952591589 Horodatage Unix (ms) indiquant le début de la consommation du message.

Pour les champs d'enveloppe CloudEvents (specversion, id, source, type, etc.), consultez la présentation des événements.

Étape 3 : Écrire et tester le code de la fonction

  1. Dans l'onglet Code, rédigez le code de votre fonction dans l'éditeur et cliquez sur Deploy. L'exemple Node.js suivant illustre le gestionnaire de fonction :

    'use strict';
    /*
    To enable the initializer feature
    please implement the initializer function as below:
    exports.initializer = (context, callback) => {
      console.log('initializing');
      callback(null, '');
    };
    */
    exports.handler = (event, context, callback) => {
      console.log("event: %s", event);
      // Parse the event parameters and process the event.
      callback(null, 'return result');
    }
  2. Testez la fonction en utilisant l'une des méthodes suivantes :

    • Test simulé : Cliquez sur Test Function pour utiliser l'événement de test configuré à l'étape 2. Cette méthode est utile pour valider votre logique d'analyse sans connexion Kafka active.

    • Test de bout en bout : Connectez-vous à la console ApsaraMQ for Kafka, sélectionnez le topic et cliquez sur Send Message pour publier un message réel. Le déclencheur détecte le message et appelle automatiquement la fonction.

    image

  3. Après l'exécution, consultez la sortie dans Real-time Logs.

    image

Étapes suivantes

Pour modifier ou supprimer un déclencheur existant, consultez la rubrique Gérer les déclencheurs.