Tous les produits
Search
Centre de documentation

Function Compute:Déclencheurs de topic Message Queue for MNS

Dernière mise à jour :Aug 12, 2026

Les topics Simple Message Queue (formerly MNS) servent de sources d'événements et s'intègrent à EventBridge ainsi qu'à Function Compute. Un déclencheur de topic Simple Message Queue (formerly MNS) exécute automatiquement la fonction associée lors de l'envoi d'un nouveau message vers votre topic Simple Message Queue (formerly MNS). Vous pouvez ainsi mettre en œuvre facilement un traitement personnalisé pour les messages entrants.

Informations générales

Message Queue for MNS est un service de messagerie distribué efficace, fiable, sécurisé, simple d'utilisation et évolutif. Il permet aux développeurs de transmettre des données et des notifications entre divers composants distribués afin de construire des systèmes faiblement couplés. Dans Message Queue for MNS, un topic constitue la destination de publication des messages. Un éditeur appelle l'API PublishMessage pour publier un message vers un topic, que reçoivent ensuite les abonnés. Pour plus de détails sur l'API, consultez PublishMessage.

Configurer un déclencheur de topic Simple Message Queue (formerly MNS) inscrit votre fonction comme abonnée au topic Simple Message Queue (formerly MNS). Lorsqu'un éditeur envoie un message au topic Simple Message Queue (formerly MNS), son contenu est transmis à la fonction pour en déclencher l'exécution. Ce contenu est passé via le paramètre event au gestionnaire de la fonction. Pour plus d'informations, consultez Informations de base.

L'intégration de Message Queue for MNS et de Function Compute offre les avantages suivants :

  • Traitez les messages de manière avancée avant leur envoi par e-mail ou SMS.

  • Évitez d'héberger un service pour un endpoint HTTP.

  • Mettez en œuvre des traitements personnalisés riches, tels que l'envoi de messages vers Slack ou la persistance de messages spécifiques.

Prérequis

Remarques d'utilisation

  • Le topic Message Queue for MNS et la fonction Function Compute doivent se trouver dans la même région.

  • Évitez les invocations récursives.

    Lorsque vous écrivez le code de la fonction, assurez-vous qu'elle ne contient pas la logique suivante : le Topic A déclenche la Fonction B, qui publie ensuite un nouveau message vers le Topic A. Cela risque de provoquer des invocations récursives infinies.

Étape 1 : Créer un déclencheur de topic Message Queue for MNS

  1. Connectez-vous à la console Function Compute. Dans le volet de navigation de gauche, choisissez Function Management > Functions.

  2. Dans la barre de navigation supérieure, sélectionnez une région. Sur la page Functions, cliquez sur la fonction cible.

  3. Sur la page de détails de la fonction, sélectionnez l'onglet Trigger, puis cliquez sur Create Trigger.

  4. Dans le panneau Create Trigger, configurez les paramètres, puis cliquez sur OK.

    Paramètre

    Actions

    Exemple

    Trigger Type

    Sélectionnez Message Queue for MNS Topic Trigger - Asynchronous Invocation.

    Simple Message Queue (formerly MNS) topic trigger

    Name

    Saisissez un nom de déclencheur personnalisé.

    trigger-mns

    Version or Alias

    La valeur par défaut est LATEST. Pour créer un déclencheur pour une autre version ou un autre alias, basculez d'abord vers cette version ou cet alias dans le coin supérieur droit de la page de détails de la fonction. Pour une vue d'ensemble des versions et des alias, consultez Gérer les versions et Gérer les alias.

    LATEST

    MNS region

    Sélectionnez la région où se trouve le topic. Le topic Simple Message Queue (formerly MNS) et la fonction Function Compute doivent se trouver dans la même région.

    China (Chengdu)

    Topic

    Choisissez le topic dans la liste.

    Mytopic

    Filter tag

    Saisissez un tag de filtrage de message.

    La fonction ne se déclenche que lors de la réception de messages contenant le tag de filtrage spécifié.

    tag

    Event format

    Sélectionnez un format d'événement. Valeurs valides :

    • STREAM

    • JSON

    JSON

    Retry policy

    Choisissez une politique de nouvelle tentative. Valeurs valides :

    • Backoff Retry

    • Exponential decay retry

    Pour obtenir des conseils sur le choix d'une politique de nouvelle tentative, consultez NotifyStrategy.

    Backoff Retry

    Role Name

    Sélectionnez AliyunMNSNotificationRole.

    Remarque

    S'il s'agit de votre première création de ce type de déclencheur, après avoir cliqué sur OK, sélectionnez Authorize Now dans la boîte de dialogue qui s'affiche.

    AliyunMNSNotificationRole

Étape 2 : Configurer les paramètres d'entrée de la fonction

  1. Dans l'onglet Code de la page de détails de la fonction, cliquez sur l'icône image.png située à côté de Test Function, puis sélectionnez Configure Test Parameters dans la liste déroulante.

  2. Dans le panneau Configure Test Parameters, sélectionnez Create New Test Event ou Modify Existing Test Event. Saisissez un nom d'événement ainsi que son contenu, puis cliquez sur OK.

    Les messages publiés vers un topic Simple Message Queue (formerly MNS) sont traités selon le notifyContentFormat. Le message traité correspond au paramètre event du gestionnaire de la fonction. Pour plus d'informations, consultez NotifyContentFormat.

    • Si vous avez défini Event Format sur STREAM lors de la création du déclencheur :

      • Si le message ne comporte pas d'attributs (MessageAttributes), le format de l'événement est le suivant.

        Remarque

        En l'absence d'attributs de message (MessageAttributes), le contenu de l'événement correspond au corps brut du message sous forme de chaîne.

        # Message body.
        'hello topic'
      • Si le message inclut des attributs (MessageAttributes), le format de l'événement est le suivant.

        Remarque

        Le contenu de l'événement comprend des paires clé-valeur liées aux MessageAttributes. Pour plus d'informations, consultez PublishMessage.

            {
                "body": "hello topic",
                "attrs": {
                    "Extend": "{\\"key\\":\\"value\\"}"
                }
            }                    
    • Si vous avez défini Event Format sur JSON lors de la création du déclencheur :

      • Si le message ne comporte pas d'attributs (MessageAttributes), le format de l'événement est le suivant.

            {
                "TopicOwner": "118620210433****",
                "Message": "hello topic",
                "Subscriber": "118620210433****",
                "PublishTime": 1550216480040,
                "SubscriptionName": "test-fc-subscribe",
                "MessageMD5": "BA4BA9B48AC81F0F9C66F6C909C3****",
                "TopicName": "Mytopic",
                "MessageId": "2F5B3C082B923D4EAC694B76D928****"
            }        
                                    
      • Si le message inclut des attributs (MessageAttributes), le format de l'événement est le suivant.

        Remarque

        Le contenu de l'événement comprend des paires clé-valeur liées aux MessageAttributes. Pour plus d'informations, consultez PublishMessage.

            {
                "key": "value",
                "TopicOwner": "118620210433****",
                "Message": "hello topic",
                "Subscriber": "118620210433****",
                "PublishTime": 1550216302888,
                "SubscriptionName": "test-fc-subscribe",
                "MessageMD5": "BA4BA9B48AC81F0F9C66F6C909C3****",
                "TopicName": "Mytopic",
                "MessageId": "2F5B3C281B283D4EAC694B742528****"
            }
                                    

    Le tableau suivant décrit les champs du paramètre event.

    Paramètre

    Type

    Exemple

    Description

    key

    String

    value

    Paires clé-valeur issues des attributs du message.

    TopicOwner

    String

    118620210433****

    ID du compte propriétaire du topic.

    Message

    String

    hello topic

    Contenu du message.

    Subscriber

    String

    118620210433****

    ID du compte de l'utilisateur.

    PublishTime

    Int

    1550216302888

    Heure de publication du message.

    SubscriptionName

    String

    test-fc-subscribe

    Nom de l'abonnement.

    MessageMD5

    String

    BA4BA9B48AC81F0F9C66F6C909C3****

    Hachage MD5 du corps du message.

    TopicName

    String

    Mytopic

    Nom du topic.

    MessageId

    String

    2F5B3C281B283D4EAC694B742528****

    ID du message.

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

Une fois le déclencheur de topic Simple Message Queue (formerly MNS) créé, écrivez et testez le code de votre fonction afin de vérifier son bon fonctionnement.

  1. Dans l'onglet Code de la page de détails de la fonction, écrivez le code dans l'éditeur, puis cliquez sur Deploy.

    Cette section prend le code Python comme exemple. Utilisez l'exemple de code ci-dessous comme modèle pour un déclencheur de topic Simple Message Queue (formerly MNS).

    import json
    import logging
    
    def handler(event, context):
      logger = logging.getLogger()
      logger.info("mns_topic trigger event = {}".format(event))
      # For example, record the event to Tablestore.
      return "OK"                     
  2. Cliquez sur Test Function.

    Une fois l'exécution terminée, consultez le résultat au-dessus de l'onglet Code.

Plus d'informations

Outre la console Function Compute, vous pouvez configurer des déclencheurs des manières suivantes :

  • Utilisez l'outil Serverless Devs pour configurer les déclencheurs. Pour plus d'informations, consultez Commandes courantes de Serverless Devs.

  • Recourez aux SDK pour configurer les déclencheurs. Pour plus d'informations, consultez SDK.

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