Tous les produits
Search
Centre de documentation

Function Compute:Déclencheurs de file d'attente Simple Message Queue (anciennement MNS)

Dernière mise à jour :Aug 12, 2026

Les déclencheurs de file d'attente Simple Message Queue (anciennement MNS) permettent d'exécuter automatiquement une fonction Function Compute dès qu'un message arrive dans une file d'attente. Ce mécanisme repose sur EventBridge : lorsque vous créez le déclencheur dans la console Function Compute, les flux d'événements nécessaires sont automatiquement provisionnés dans EventBridge pour votre compte. Pour plus d'informations sur les flux d'événements, consultez Vue d'ensemble.

Une fois le déclencheur actif, chaque message ajouté à la file d'attente source provoque l'exécution de la fonction associée. Selon votre configuration de traitement par lots, les messages sont remis individuellement ou par groupes. Cette architecture convient particulièrement au traitement de données en streaming de bout en bout.

Contraintes

  • La file d'attente Simple Message Queue (anciennement MNS) et la fonction Function Compute doivent résider dans la même région.

  • Si votre compte Alibaba Cloud atteint la limite de flux d'événements EventBridge, la création de nouveaux déclencheurs de file d'attente Simple Message Queue (anciennement MNS) est impossible. Pour connaître les limites en vigueur, reportez-vous à Limites.

Prérequis

Avant de commencer, assurez-vous de disposer des éléments suivants :

Étape 1 : Créer un déclencheur

  1. Connectez-vous à la console Function Compute et cliquez sur la fonction souhaitée.

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

  3. Renseignez les paramètres du déclencheur. Le champ essentiel est Invocation Method : pour plus de détails, consultez Invocation synchrone et Invocation asynchrone.

    Méthode d'invocation Comportement Charge utile maximale Cas d'usage
    Sync Invocation Function Compute attend le retour de la fonction avant de remettre l'événement ou le lot suivant 32 Mo Traitement ordonné ou séquentiel requis
    Async Invocation Function Compute remet l'événement et passe immédiatement au suivant ; la fonction s'exécute en arrière-plan 128 Ko Scénarios à haut débit nécessitant une consommation rapide des événements
  4. Cliquez sur OK.

image

Pour les paramètres avancés tels que les configurations de push, les politiques de nouvelle tentative et les files d'attente de lettres mortes, reportez-vous à Fonctionnalités avancées des déclencheurs.

Une fois créé, le déclencheur apparaît dans l'onglet Triggers. Pour le modifier ou le supprimer, consultez Gérer les déclencheurs.

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

La fonction reçoit les événements Simple Message Queue (anciennement MNS) sous forme de paramètre event — un tableau d'objets au format CloudEvents. Pour tester votre code sans envoyer de message réel, simulez manuellement l'événement.

  1. Dans l'onglet Code, cliquez sur l'icône image.png 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 d'événement ainsi que le contenu ci-dessous, puis cliquez sur OK.

Exemple de charge utile event :

[
  {
    "id": "c2g71017-6f65-fhcf-a814-a396fc8d****",
    "source": "MNS-Function-mnstrigger",
    "specversion": "1.0",
    "type": "mns:Queue:SendMessage",
    "datacontenttype": "application/json; charset=utf-8",
    "subject": "acs:mns:cn-hangzhou:164901546557****:queues/zeus",
    "time": "2021-04-08T06:28:17.093Z",
    "aliyunaccountid": "164901546557****",
    "aliyunpublishtime": "2021-10-15T07:06:34.028Z",
    "aliyunoriginalaccountid": "164901546557****",
    "aliyuneventbusname": "MNS-Function-mnstrigger",
    "aliyunregionid": "cn-chengdu",
    "aliyunpublishaddr": "42.120.XX.XX",
    "data": {
      "requestId": "606EA3074344430D4C81****",
      "messageId": "C6DB60D1574661357FA227277445****",
      "messageBody": "TEST"
    }
  },
  {
    "id": "d2g71017-6f65-fhcf-a814-a396fc8d****",
    "source": "MNS-Function-mnstrigger",
    "specversion": "1.0",
    "type": "mns:Queue:SendMessage",
    "datacontenttype": "application/json; charset=utf-8",
    "subject": "acs:mns:cn-hangzhou:164901546557****:queues/zeus",
    "time": "2021-04-08T06:28:17.093Z",
    "aliyunaccountid": "164901546557****",
    "aliyunpublishtime": "2021-10-15T07:06:34.028Z",
    "aliyunoriginalaccountid": "164901546557****",
    "aliyuneventbusname": "MNS-Function-mnstrigger",
    "aliyunregionid": "cn-chengdu",
    "aliyunpublishaddr": "42.120.XX.XX",
    "data": {
      "requestId": "606EA3074344430D4C81****",
      "messageId": "C6DB60D1574661357FA227277445****",
      "messageBody": "TEST"
    }
  }
]

Référence des champs d'événement

Chaque élément du tableau respecte la spécification CloudEvents.

Champs d'enveloppe CloudEvents

Champ Type Exemple Description
id String c2g71017-6f65-fhcf-a814-a396fc8d**** Identifiant unique de l'événement
source String MNS-Function-mnstrigger Identificateur de la source de l'événement (nom du bus d'événements)
type String mns:Queue:SendMessage Type d'événement
subject String acs:mns:cn-hangzhou:...:queues/zeus ARN de la file d'attente source
time String 2021-04-08T06:28:17.093Z Heure de mise en file d'attente du message (ISO 8601)
specversion String 1.0 Version de la spécification CloudEvents
datacontenttype String application/json; charset=utf-8 Type de contenu du champ data
aliyunregionid String cn-chengdu Région où réside la file d'attente
aliyunaccountid String 164901546557**** ID du compte Alibaba Cloud
aliyunpublishtime String 2021-10-15T07:06:34.028Z Heure de publication de l'événement par EventBridge

Champs data

Champ Type Exemple Description
requestId String 606EA3074344430D4C81**** Identifiant unique de la requête d'envoi de message
messageId String C6DB60D1574661357FA227277445**** Identifiant unique du message
messageBody String TEST Contenu du corps du message

Étape 3 : Écrire et tester la fonction

Après la création du déclencheur, écrivez le code de votre fonction, déployez-le, puis vérifiez le bon fonctionnement de bout en bout.

Écrire et déployer le code de la fonction

Dans l'onglet Code, rédigez votre handler et cliquez sur Deploy Code.

L'exemple Node.js suivant illustre l'écriture du code de la 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 and process event.
  callback(null, 'return result');
}

Tester la fonction

Utilisez l'une des méthodes suivantes :

  • Événement simulé : Si vous avez configuré un événement de test à l'étape 2, cliquez sur Test Function dans l'onglet Code.

  • Message réel : Connectez-vous à la console Simple Message Queue (anciennement MNS), sélectionnez la file d'attente source, puis cliquez sur Send Message.

image

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

image

Étapes suivantes