Le courtier de messages Amazon MQ en tant que source dans Pipes EventBridge - Amazon EventBridge

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Le courtier de messages Amazon MQ en tant que source dans Pipes EventBridge

Vous pouvez utiliser EventBridge Pipes pour recevoir des enregistrements d'un courtier de messages Amazon MQ. Ensuite, vous pouvez éventuellement filtrer ou améliorer ces enregistrements avant de les envoyer à l’une des destinations disponibles pour être traités. Il existe des paramètres spécifiques à Amazon MQ que vous pouvez choisir lors de la configuration d'un canal. EventBridge Pipes conserve l'ordre des enregistrements provenant du courtier de messages lors de l'envoi de ces données à la destination.

Amazon MQ est un service d'agent de messages géré pour Apache ActiveMQ et RabbitMQ. Un agent de messages permet à des applications et composants logiciels de communiquer à l’aide de différents langages de programmation, systèmes d’exploitation et autres protocoles de messagerie formels avec des rubriques ou des files d’attente comme destinations d’événements.

Amazon MQ peut également gérer les instances Amazon Elastic Compute Cloud EC2 (Amazon) en votre nom en installant des courtiers ActiveMQ ou RabbitMQ. Une fois qu’un agent est installé, il fournit différentes topologies de réseau et d’autres besoins en infrastructure à vos instances.

La source Amazon MQ est soumise aux restrictions de configuration suivantes :

  • Compte croisé : EventBridge ne prend pas en charge le traitement multicompte. Vous ne pouvez pas l'utiliser EventBridge pour traiter des enregistrements provenant d'un courtier de messages Amazon MQ associé à un autre AWS compte.

  • Authentification — Pour ActiveMQ, seul ActiveMQ est pris en charge. SimpleAuthenticationPlugin Pour RabbitMQ, seul le mécanisme PLAINd'authentification est pris en charge. Pour gérer les informations d’identification, utilisez AWS Secrets Manager. Pour plus d'informations sur l'authentification ActiveMQ, consultez la section Intégration des courtiers ActiveMQ LDAP dans le guide du développeur Amazon MQ.

  • Quota de connexion : les agents ont un nombre maximal de connexions autorisées pour chaque protocole de niveau filaire. Ce quota est basé sur le type d'instance de l'agent. Pour plus d’informations, consultez la section Agents de Quotas dans Amazon MQ dans le Guide du développeur Amazon MQ.

  • Connectivité — Vous pouvez créer des courtiers dans un cloud privé virtuel public ou privé (VPC). Pour le mode privéVPCs, votre canal doit avoir accès au VPC pour recevoir des messages.

  • Destinations d’événements : seules les destinations de file d’attente sont prises en charge. Toutefois, vous pouvez utiliser une rubrique virtuelle, qui se comporte comme une rubrique en interne et comme une file d’attente en externe, lorsqu’elle interagit avec vos canaux. Pour plus d’informations, consultez Destinations virtuelles (langue française non garantie) sur le site web d’Apache ActiveMQ et Hôtes virtuels (langue française non garantie) sur le site web de RabbitMQ.

  • Topologie réseau : pour ActiveMQ, une seule instance ou un seul agent en veille est pris en charge pour un canal. Pour RabbitMQ, un seul agent d’instance ou un seul déploiement de cluster est pris en charge pour chaque canal. Les agents à instance unique nécessitent un point de terminaison de basculement. Pour plus d’informations sur ces modes de déploiement de l’agent, consultez Architecture d’agent ActiveMQ et Architecture d’agent RabbitMQ dans le Guide du développeur Amazon MQ.

  • Protocoles : les protocoles pris en charge dépendent de l’intégration Amazon MQ que vous utilisez.

    • Pour les intégrations ActiveMQ EventBridge , utilise OpenWire le protocole /Java Message Service JMS () pour consommer les messages. La consommation de messages n’est prise en charge par aucun autre protocole. EventBridge prend uniquement en charge les BytesMessageopérations TextMessageet au sein du JMS protocole. Pour plus d'informations sur le OpenWire protocole, consultez OpenWirele site Web d'Apache ActiveMQ.

    • Pour les intégrations avec RabbitMQ, EventBridge utilise le protocole AMQP 0-9-1 pour consommer les messages. Aucun autre protocole n'est pris en charge pour la consommation de messages. Pour plus d'informations sur l'implémentation du protocole 0-9-1 par RabbitMQ, consultez AMQP le guide de référence complet AMQP 0-9-1 sur le site Web de RabbitMQ.

EventBridge prend automatiquement en charge les dernières versions d'ActiveMQ et de RabbitMQ prises en charge par Amazon MQ. Pour connaître les dernières versions prises en charge, consultez Notes de mise à jour Amazon MQ dans le Guide du développeur Amazon MQ.

Note

Par défaut, Amazon MQ comporte une fenêtre de maintenance hebdomadaire pour les agents. Pendant cette période, les agents ne sont pas disponibles. Pour les courtiers qui ne sont pas en veille, ils EventBridge ne traiteront pas les messages avant la fin de la fenêtre.

Exemples d’événements

L’exemple d’événement suivant montre les informations reçues par le canal. Vous pouvez utiliser cet événement pour créer et filtrer vos modèles d’événements, ou pour définir la transformation d’entrée. Tous les champs ne peuvent pas être filtrés. Pour plus d’informations sur les champs que vous pouvez filtrer, consultez Filtrage des événements dans Amazon EventBridge Pipes.

ActiveMQ

[ { "eventSource": "aws:amq", "eventSourceArn": "arn:aws:mq:us-west-2:112556298976:broker:test:b-9bcfa592-423a-4942-879d-eb284b418fc8", "messageID": "ID:b-9bcfa592-423a-4942-879d-eb284b418fc8-1---mq---us-west-2.amazonaws.com.rproxy.goskope.com-37557-1234520418293-4:1:1:1:1", "messageType": "jms/text-message", "data": "QUJDOkFBQUE=", "connectionId": "myJMSCoID", "redelivered": false, "destination": { "physicalname": "testQueue" }, "timestamp": 1598827811958, "brokerInTime": 1598827811958, "brokerOutTime": 1598827811959 }, { "eventSource": "aws:amq", "eventSourceArn": "arn:aws:mq:us-west-2:112556298976:broker:test:b-9bcfa592-423a-4942-879d-eb284b418fc8", "messageID": "ID:b-9bcfa592-423a-4942-879d-eb284b418fc8-1---mq---us-west-2.amazonaws.com.rproxy.goskope.com-37557-1234520418293-4:1:1:1:1", "messageType": "jms/bytes-message", "data": "3DTOOW7crj51prgVLQaGQ82S48k=", "connectionId": "myJMSCoID1", "persistent": false, "destination": { "physicalname": "testQueue" }, "timestamp": 1598827811958, "brokerInTime": 1598827811958, "brokerOutTime": 1598827811959 } ]

RabbitMQ

[ { "eventSource": "aws:rmq", "eventSourceArn": "arn:aws:mq:us-west-2:111122223333:broker:pizzaBroker:b-9bcfa592-423a-4942-879d-eb284b418fc8", "eventSourceKey": "pizzaQueue::/", "basicProperties": { "contentType": "text/plain", "contentEncoding": null, "headers": { "header1": { "bytes": [ 118, 97, 108, 117, 101, 49 ] }, "header2": { "bytes": [ 118, 97, 108, 117, 101, 50 ] }, "numberInHeader": 10 }, "deliveryMode": 1, "priority": 34, "correlationId": null, "replyTo": null, "expiration": "60000", "messageId": null, "timestamp": "Jan 1, 1970, 12:33:41 AM", "type": null, "userId": "AIDACKCEVSQ6C2EXAMPLE", "appId": null, "clusterId": null, "bodySize": 80 }, "redelivered": false, "data": "eyJ0aW1lb3V0IjowLCJkYXRhIjoiQ1pybWYwR3c4T3Y0YnFMUXhENEUifQ==" } ]

Groupe de consommateurs

Pour interagir avec Amazon MQ, EventBridge créez un groupe de consommateurs capable de lire les avis de vos courtiers Amazon MQ. Le groupe de consommateurs est créé avec le même identifiant que le canalUUID.

Pour les sources Amazon MQ, regroupe EventBridge les enregistrements et les envoie à votre fonction en une seule charge utile. Pour contrôler le comportement, vous pouvez configurer la fenêtre de traitement par lots et la taille du lot. EventBridge extrait les messages jusqu'à ce que l'une des situations suivantes se produise :

  • Les enregistrements traités atteignent la taille de charge utile maximale de 6 Mo.

  • La fenêtre de traitement par lots expire.

  • Le nombre d’enregistrements atteint la taille totale du lot.

EventBridge convertit votre lot en une seule charge utile, puis invoque votre fonction. Les messages ne sont ni conservés ni désérialisés. Au lieu de cela, le groupe de consommateurs les récupère sous forme BLOB d'octets. Il les code ensuite en base64 dans une charge utile. JSON Si le canal renvoie une erreur pour l'un des messages d'un lot, EventBridge réessaie l'ensemble du lot de messages jusqu'à ce que le traitement aboutisse ou que les messages expirent.

Configuration réseau

Par défaut, les agents Amazon MQ sont créés avec l'indicateur PubliclyAccessible défini sur false. Ce n’est que lorsque PubliclyAccessible est défini sur true que l’agent reçoit une adresse IP publique. Pour un accès complet à votre canal, votre courtier doit soit utiliser un point de terminaison public, soit fournir un accès auVPC.

Si votre courtier Amazon MQ n'est pas accessible au public, EventBridge il doit avoir accès aux ressources Amazon Virtual Private Cloud VPC (Amazon) associées à votre courtier.

  • Pour accéder à vos courtiers Amazon MQ, vous EventBridge pouvez utiliser un accès Internet sortant pour les sous-réseaux de votre source. VPC Pour les sous-réseaux publics, il doit s'agir d'une NATpasserelle gérée. Pour les sous-réseaux privés, il peut s'agir d'une NAT passerelle ou de la vôtre. NAT Assurez-vous qu'il NAT possède une adresse IP publique et qu'il peut se connecter à Internet.

  • EventBridge Pipes prend également en charge la diffusion d'événements AWS PrivateLink, ce qui vous permet d'envoyer des événements depuis une source d'événements située dans un Amazon Virtual Private Cloud (Amazon VPC) vers une cible Pipes sans passer par l'Internet public. Vous pouvez utiliser Pipes pour interroger depuis Amazon Managed Streaming for Apache Kafka (Amazon MSK), Apache Kafka autogéré et des Amazon MQ sources résidant dans un sous-réseau privé sans avoir à déployer une passerelle Internet, à configurer des règles de pare-feu ou à configurer des serveurs proxy.

    Pour configurer un VPC point de terminaison, consultez la section Créer un VPC point de terminaison dans le guide de AWS PrivateLink l'utilisateur. Pour le nom du service, sélectionnezcom.amazonaws.region.pipes-data.

Configurez vos groupes VPC de sécurité Amazon avec les règles suivantes (au minimum) :

  • Règles de trafic entrant : autorisez tout le trafic sur le port du courtier Amazon MQ pour les groupes de sécurité spécifiés pour votre source.

  • Règles sortantes : autorisent tout le trafic sur le port 443 pour toutes les destinations. Autorisez tout le trafic sur le port du courtier Amazon MQ pour les groupes de sécurité spécifiés pour votre source.

    Les ports Broker incluent :

    • 9092 pour le texte en clair

    • 9094 pour TLS

    • 9096 pour SASL

    • 9098 pour IAM

Note

Votre VPC configuration Amazon est consultable via Amazon API MQ. Vous n’avez pas besoin de la définir pendant la configuration.