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 (AmazonEC2) -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 Authentifizierungsmechanismus unterstützt. PLAIN Zur Verwaltung von Anmeldeinformationen verwenden Sie AWS Secrets Manager. Weitere Informationen zur ActiveMQ-Authentifizierung finden Sie unter Integrating ActiveMQ brokers with LDAP im Amazon MQ Developer Guide.

  • 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 virtuellen privaten Cloud () erstellen. VPC 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 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-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-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 erstellt. UUID

Bei Amazon MQ MQ-Quellen EventBridge werden Datensätze gebündelt und in einer einzigen Payload an Ihre Funktion gesendet. Um das Verhalten zu steuern, können Sie das Batch-Fenster und die Batch-Größ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 Nutzergruppe sie als Anzahl Byte ab. BLOB Anschließend werden sie mit Base64 in eine Nutzlast kodiert. JSON Wenn die Pipe für eine der Nachrichten in einem Batch einen Fehler zurückgibt, wiederholt sie den gesamten Nachrichtenstapel, EventBridge 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 vollen Zugriff mit Ihrer Pipe muss Ihr Broker entweder einen öffentlichen Endpunkt verwenden oder Zugriff auf den gewähren. VPC

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

  • Um auf Ihre Amazon MQ-Broker zuzugreifen, EventBridge können Sie den ausgehenden Internetzugang für die Subnetze Ihrer Quelle verwenden. VPC Für öffentliche Subnetze muss es sich um ein verwaltetes Gateway handeln. NAT Bei privaten Subnetzen kann es sich um ein NAT Gateway oder um Ihr eigenes Gateway handeln. NAT Stellen Sie sicher, dass der eine öffentliche IP-Adresse NAT hat und eine Verbindung zum Internet herstellen 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 durchqueren. 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 Einen VPC Endpunkt erstellen im Benutzerhandbuch.AWS PrivateLink Wählen Sie als Dienstnamen auscom.amazonaws.region.pipes-data.

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

  • 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 VPC Amazon-Konfiguration ist über Amazon API MQ auffindbar. Sie müssen sie während der Einrichtung nicht konfigurieren.