Amazon MQ Message Broker als Quelle in EventBridge Pipes - Amazon EventBridge

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Amazon MQ Message Broker als Quelle in EventBridge Pipes

Sie können EventBridge Pipes verwenden, um Datensätze von einem Amazon MQ MQ-Nachrichtenbroker zu empfangen. Sie können diese Datensätze dann optional filtern oder optimieren, bevor Sie sie zur Verarbeitung an eines der verfügbaren Ziele senden. Es gibt spezielle Amazon MQ MQ-Einstellungen, die Sie beim Einrichten einer Pipe auswählen können. EventBridge Pipes behält die Reihenfolge der Datensätze des Message Brokers bei, wenn diese Daten an das Ziel gesendet werden.

Amazon MQ ist ein verwalteter Message-Broker-Service für Apache ActiveMQ und RabbitMQ. Mit einem Message Broker können Software-Anwendungen und -Komponenten mithilfe unterschiedlicher Programmiersprachen, Betriebssysteme und formeller Messaging-Protokolle entweder mit Themen oder Warteschlangen als Ereignisziele kommunizieren.

Amazon MQ kann auch Amazon Elastic Compute Cloud (Amazon EC2) -Instances in Ihrem Namen verwalten, indem es ActiveMQ- oder RabbitMQ-Broker installiert. Nachdem ein Broker installiert wurde, stellt er Ihren Instances unterschiedliche Netzwerktopologien und andere Infrastrukturanforderungen zur Verfügung.

Das Amazon-MQ-Quelle hat die folgenden Konfigurationseinschränkungen:

  • Kontoübergreifend — EventBridge unterstützt keine kontoübergreifende Verarbeitung. Sie können nicht verwenden EventBridge , um Datensätze von einem Amazon MQ MQ-Nachrichtenbroker zu verarbeiten, der sich in einem anderen AWS Konto befindet.

  • Authentifizierung — Für ActiveMQ wird nur SimpleAuthenticationPluginActiveMQ unterstützt. Für RabbitMQ wird nur der PLAIN-Authentifizierungsmechanismus unterstützt. Zur Verwaltung von Anmeldeinformationen verwenden Sie AWS Secrets Manager. Weitere Informationen zur ActiveMQ-Authentifizierung finden Sie unter Integrieren von ActiveMQ-Brokern mit LDAP im Amazon-MQ-Entwicklerhandbuch.

  • Verbindungskontingent – Broker haben eine maximale Anzahl zulässiger Verbindungen für jedes Wire-Level-Protokoll. Dieses Kontingent basiert auf dem Instance-Typ des Brokers. Weitere Informationen finden Sie im Abschnitt Broker in *Kontingente in Amazon MQ* im Amazon-MQ-Entwicklerhandbuch.

  • Konnektivität – Sie können Broker in einer öffentlichen oder privaten Virtual Private Cloud (VPC) erstellen. Im privaten Modus VPCs benötigt Ihre Pipe Zugriff auf die VPC, um Nachrichten zu empfangen.

  • Ereignisziele – Es werden nur Warteschlangenziele unterstützt. Sie können jedoch ein virtuelles Thema verwenden, das sich sowohl intern als Thema als auch extern als Warteschlange verhält, wenn es mit Ihren Pipes interagiert. Weitere Informationen finden Sie unter Virtuelle Ziele auf der Apache-ActiveMQ-Website und Virtuelle Hosts auf der RabbitMQ-Website.

  • Netzwerktopologie – Für ActiveMQ wird nur ein Single-Instance- oder Standby-Broker für die Pipe unterstützt. Für RabbitMQ wird nur eine Single-Instance-Broker- oder Cluster-Bereitstellung für jede Pipe unterstützt. Single-Instance-Broker benötigen einen Failover-Endpunkt. Weitere Informationen zu diesen Broker-Bereitstellungsmodi finden Sie unter Aktive MQ-Broker-Architektur und Broker-Architektur von Rabbit MQ im Amazon-MQ-Entwicklerhandbuch.

  • Protokolle – Die unterstützten Protokolle hängen von der Amazon-MQ-Integration ab, die Sie verwenden.

    • EventBridge Verwendet für ActiveMQ-Integrationen das OpenWire /Java Message Service (JMS) -Protokoll, um Nachrichten zu verarbeiten. Der Nachrichtenverbrauch wird in keinem anderen Protokoll unterstützt. EventBridge unterstützt nur die BytesMessageOperationen TextMessageund innerhalb des JMS-Protokolls. Weitere Informationen zum OpenWire Protokoll finden Sie OpenWireauf der Apache ActiveMQ-Website.

    • EventBridge Verwendet bei RabbitMQ-Integrationen das AMQP 0-9-1-Protokoll, um Nachrichten zu verarbeiten. Es werden keine anderen Protokolle unterstützt, um Nachrichten zu verbrauchen. Weitere Informationen zur Implementierung des AMQP 0-9-1-Protokolls durch RabbitMQ finden Sie im Kompletten AMQ-0-9-1-Referenzhandbuch auf der RabbitMQ-Website.

EventBridge unterstützt automatisch die neuesten Versionen von ActiveMQ und RabbitMQ, die Amazon MQ unterstützt. Die neuesten unterstützten Versionen finden Sie in den Amazon-MQ-Versionshinweisen im Amazon-MQ-Entwicklerhandbuch.

Anmerkung

Amazon MQ hat standardmäßig ein wöchentliches Wartungsfenster für Broker. Während dieses Zeitfensters sind Broker nicht verfügbar. Bei Brokern ohne Standby-Modus werden Nachrichten EventBridge erst verarbeitet, wenn das Fenster endet.

Beispielereignisse

Das folgende Beispielereignis zeigt die Informationen, die von der Pipe empfangen werden. Sie können dieses Ereignis verwenden, um Ihre Ereignismuster zu erstellen und zu filtern oder um die Eingabetransformation zu definieren. Nicht alle Felder können gefiltert werden. Weitere Informationen darüber, welche Felder Sie filtern können, finden Sie unter Filterung von Ereignissen in 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.govskope.ca-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.govskope.ca-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==" } ]

Verbrauchergruppe

Um mit Amazon MQ zu interagieren, EventBridge erstellt eine Verbrauchergruppe, die von Ihren Amazon MQ-Brokern lesen kann. Die Verbrauchergruppe wird mit derselben ID wie die Pipe-UUID erstellt.

Bei Amazon MQ MQ-Quellen EventBridge werden Datensätze gebündelt und in einer einzigen Payload an Ihre Funktion gesendet. Um das Verhalten zu kontrollieren, können Sie das Stapelfenster und die Batchgröße konfigurieren. EventBridge ruft Nachrichten ab, bis eine der folgenden Situationen eintritt:

  • Die verarbeiteten Datensätze erreichen die maximale Nutzlastgröße von 6 MB.

  • Das Stapelverarbeitungsfenster läuft ab.

  • Die Anzahl der Datensätze hat die volle Stapelgröße erreicht.

EventBridge konvertiert Ihren Stapel in eine einzelne Nutzlast und ruft dann Ihre Funktion auf. Nachrichten werden nicht behalten oder deserialisiert. Stattdessen ruft die Verbrauchergruppe sie als ein BLOB von Bytes ab. Anschließend werden sie in eine JSON-Nutzlast base64-kodiert. Wenn die Pipe für eine der Nachrichten in einem Batch einen Fehler zurückgibt, EventBridge wiederholt sie den gesamten Nachrichtenstapel, bis die Verarbeitung erfolgreich ist oder die Nachrichten ablaufen.

Netzwerkkonfiguration

Standardmäßig werden Amazon-MQ-Broker erstellt, wobei das PubliclyAccessible Flag auf „false“ gesetzt ist. Nur wenn PubliclyAccessible auf „true“ gesetzt ist, erhält der Broker eine öffentliche IP-Adresse. Für den vollständigen Zugriff auf Ihre Pipe muss Ihr Broker entweder einen öffentlichen Endpunkt verwenden oder Zugriff auf die VPC gewähren.

Wenn Ihr Amazon MQ-Broker nicht öffentlich zugänglich ist, EventBridge muss er Zugriff auf die Amazon Virtual Private Cloud (Amazon VPC) -Ressourcen haben, die Ihrem Broker zugeordnet sind.

  • Um auf die VPC Ihrer Amazon MQ-Broker zuzugreifen, EventBridge können Sie den ausgehenden Internetzugang für die Subnetze Ihrer Quelle verwenden. Für öffentliche Subnetze muss es sich um ein verwaltetes NAT-Gateway handeln. Für private Subnetze kann es sich um ein NAT-Gateway oder Ihr eigenes NAT handeln. Stellen Sie sicher, dass das NAT über eine öffentliche IP-Adresse verfügt und sich mit dem Internet verbinden kann.

  • EventBridge Pipes unterstützt auch die Übertragung von Ereignissen durch AWS PrivateLink, sodass Sie Ereignisse von einer Ereignisquelle, die sich in an Amazon Virtual Private Cloud (Amazon VPC) befindet, an ein Pipes-Ziel senden können, ohne das öffentliche Internet zu nutzen. Sie können Pipes für Abfragen von Amazon Managed Streaming for Apache Kafka (Amazon MSK), selbstverwaltetem Apache Kafka und Amazon MQ Quellen verwenden, die sich in einem privaten Subnetz befinden, ohne dass Sie ein Internet-Gateway einrichten, Firewallregeln konfigurieren oder Proxyserver einrichten müssen.

    Informationen zum Einrichten eines VPC-Endpunkts finden Sie unter Erstellen eines VPC-Endpunkts im AWS PrivateLink Benutzerhandbuch. Wählen Sie als Dienstnamen aus. com.amazonaws.region.pipes-data

Konfigurieren Sie Ihre Amazon-VPC-Sicherheitsgruppen (mindestens) mit den folgenden Regeln:

  • Regeln für eingehenden Datenverkehr — Lassen Sie den gesamten Datenverkehr auf dem Amazon MQ-Broker-Port für die für Ihre Quelle angegebenen Sicherheitsgruppen zu.

  • Ausgehende Regeln - Erlauben Sie allen Datenverkehr auf Port 443 für alle Ziele. Lassen Sie den gesamten Verkehr auf dem Amazon MQ-Broker-Port für die für Ihre Quelle angegebenen Sicherheitsgruppen zu.

    Zu den Broker-Ports gehören:

    • 9092 für Klartext

    • 9094 für TLS

    • 9096 für SASL

    • 9098 für IAM

Anmerkung

Ihre Amazon-VPC-Konfiguration ist über die Amazon-MQ-API erkennbar. Sie müssen sie während der Einrichtung nicht konfigurieren.