Tous les produits
Search
Centre de documentation

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

Dernière mise à jour :Sep 09, 2026

Les déclencheurs de file d'attente Simple Message Queue (anciennement MNS) vous permettent d'exécuter automatiquement une fonction Function Compute dès qu'un message arrive dans une file d'attente. Ce mécanisme s'appuie sur EventBridge : lorsque vous créez le déclencheur dans la console Function Compute, celle-ci génère pour vous les flux d'événements requis dans EventBridge. Pour en savoir plus sur les flux d'événements, consultez la rubrique Présentation.

Une fois le déclencheur activé, chaque message placé dans la file d'attente source entraîne l'exécution de la fonction associée. Les messages sont livrés individuellement ou par lots, selon votre configuration. Cette approche convient parfaitement au traitement de données en continu de bout en bout.

Contraintes

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

  • Si votre compte Alibaba Cloud atteint la limite de flux d'événements EventBridge, vous ne pouvez pas créer d'autres déclencheurs de file d'attente Simple Message Queue (anciennement MNS). Pour connaître les limites actuelles, consultez la rubrique Limites.

Prérequis

Avant de commencer, assurez-vous d'avoir effectué les opérations suivantes :

Étape 1 : Créer un déclencheur

  1. Connectez-vous à la console Function Compute et cliquez sur la fonction que vous souhaitez utiliser.

  2. Sur la page des 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 clé est Invocation Method : pour plus de détails, consultez les rubriques Appel synchrone et Appel asynchrone.

    Méthode d'appel Comportement Charge utile maximale Cas d'utilisation
    Sync Invocation Function Compute attend le retour de la fonction avant de livrer l'événement ou le lot suivant 32 Mo Lorsque l'ordre ou le traitement séquentiel est important
    Async Invocation Function Compute livre 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 où vous souhaitez consommer les événements rapidement
  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, consultez la rubrique Fonctionnalités avancées des déclencheurs.

Une fois le déclencheur créé, il apparaît dans l'onglet Triggers. Pour le modifier ou le supprimer, consultez la rubrique 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) via le paramètre event — un tableau d'objets au format CloudEvents. Pour tester le code de votre fonction sans envoyer de message réel, simulez l'événement manuellement.

  1. Dans l'onglet Code, cliquez sur l'icône image.pngimage.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 de l'événement 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 Identifiant 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 avoir créé le déclencheur, rédigez le code de votre fonction, déployez-le, puis vérifiez que le déclencheur fonctionne de bout en bout.

Rédiger et déployer le code de la fonction

Dans l'onglet Code, écrivez votre gestionnaire et cliquez sur Deploy Code.

L'exemple Node.js suivant illustre la rédaction du code 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 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 et cliquez sur Send Message.

image

Une fois la fonction exécutée, consultez la sortie dans Real-time Logs.

image

Étapes suivantes