Filtrez les événements à l'aide d'une règle d'événement et routez-les vers une file d'attente dans Message Service (MNS). Cet exemple utilise un événement personnalisé pour illustrer le routage des événements vers Simple Message Queue (anciennement MNS).
Prérequis
-
EventBridge
-
Message Service (MNS)
Étape 1 : Ajouter une source d'événements personnalisée
Connectez-vous à la console EventBridge. Dans le volet de navigation de gauche, cliquez sur Event Buses.
Dans la barre de navigation supérieure, sélectionnez une région. Sur la page Event Buses, cliquez sur le bus d'événements personnalisé cible.
Dans le volet de navigation de gauche, cliquez sur Event Sources, puis sur Add Event Source.
Dans le panneau Add Custom Event Source, saisissez un Name et une Description. Pour Event Provider, sélectionnez Event Provider, puis cliquez sur OK.
Étape 2 : Créer une règle d'événement
La cible d'événement et la règle d'événement doivent se trouver dans la même région.
Connectez-vous à la console EventBridge.
Dans le volet de navigation de gauche, cliquez sur Event Buses.
Dans la barre de navigation supérieure, sélectionnez une région.
Sur la page Event Buses, cliquez sur le nom du bus d'événements à gérer.
Dans le volet de navigation de gauche, cliquez sur Event Rules.
Sur la page Event Rules, cliquez sur Create Rule.
-
Sur la page Create Rule, suivez les étapes ci-dessous.
À l'étape Configure Basic Info, saisissez un Name et une Description pour la règle, puis cliquez sur Next Step.
-
À l'étape Configure Event Pattern, définissez Event Source Type sur Custom Event Sources. Pour Event Sources, sélectionnez la source d'événements personnalisée ajoutée à l'étape 1. Dans l'éditeur de code Event Pattern, saisissez un modèle d'événement, puis cliquez sur Next Step.
Pour plus d'informations, consultez la rubrique Modèles d'événements.
-
À l'étape Configure Targets, configurez la cible d'événement, puis cliquez sur Create.
RemarqueVous pouvez ajouter jusqu'à cinq cibles pour une seule règle d'événement.
Service Type : sélectionnez Simple Message Queue (formerly MNS).
Queue : sélectionnez la file d'attente créée.
-
Message Content : sélectionnez Template.
Les exemples suivants illustrent une variable et un modèle.
Exemple de variable :
{ "source":"$.source" }Exemple de modèle :
The event from ${source} is abnormal.Pour plus d'informations, consultez la rubrique Transformation des événements.
Étape 3 : Publier un événement
Connectez-vous à la console EventBridge.
Dans le volet de navigation de gauche, cliquez sur Event Buses.
Dans la barre de navigation supérieure, sélectionnez une région.
-
Sur la page Event Buses, recherchez le bus d'événements cible et cliquez sur Publish Event dans la colonne Operations.
RemarqueLa console EventBridge prend uniquement en charge la publication d'événements vers des bus d'événements personnalisés.
-
Dans le panneau Publish Event To Custom Event Bus, configurez les paramètres suivants :
Setting Description Custom Event Source Sélectionnez une source d'événements personnalisée existante dans la liste déroulante. Event Body Saisissez le contenu de l'événement. Cliquez sur OK.
Vérifier le résultat
Vérifiez que l'événement a bien été reçu dans la console Message Service (MNS).
Connectez-vous à la console Simple Message Queue (anciennement MNS).
Dans le volet de navigation de gauche, choisissez .
Dans la barre de navigation supérieure, sélectionnez une région.
Sur la page Queues, recherchez la file d'attente cible et choisissez dans la colonne Actions.
-
Sur la page Send and Receive Messages, accédez à la section Receive Message et cliquez sur Receive Message.
ImportantLorsque vous utilisez le SDK Java pour Message Service (MNS) afin de recevoir des événements, le corps du message n'est pas encodé en Base64 et peut apparaître sous forme de caractères illisibles. Pour récupérer correctement le corps de l'événement, utilisez la méthode getMessageBodyAsRawBytes() ou getMessageBodyAsRawString().
Voici un exemple de message reçu.
{ "id":"22h0iaji-8cf5-2iea-j4a6-i99a5j1a****", "source":"acs.oss", "specversion":"1.0", "type":"oss:ObjectCreated:PostObject", "datacontenttype":"application/json;charset=utf-8", "dataschema":"http://example.com/item.json", "subject":"acs:oss:cn-hangzhou:<yourAccountId>:xls-papk/game_apk/123.jpg", "aliyunaccountid":"165228866041****", "aliyunpublishtime":"2020-10-14T17:00:03.628Asia/Shanghai", "aliyuneventbusname":"MyEventBus", "aliyunpublishaddr":"10.0.XX.XX", "data":{ "name":"Eventbridge", "number":100 } }