Thema Amazon Managed Streaming for Apache Kafka 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.

Thema Amazon Managed Streaming for Apache Kafka als Quelle in EventBridge Pipes

Sie können EventBridge Pipes verwenden, um Datensätze von einem Amazon Managed Streaming for Apache Kafka (AmazonMSK) -Thema zu empfangen. Sie können diese Datensätze optional filtern oder optimieren, bevor Sie sie zur Verarbeitung an eines der verfügbaren Ziele senden. Es gibt Amazon-spezifische EinstellungenMSK, 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 MSK ist ein vollständig verwalteter Service, mit dem Sie Anwendungen erstellen und ausführen können, die Apache Kafka zur Verarbeitung von Streaming-Daten verwenden. Amazon MSK vereinfacht die Einrichtung, Skalierung und Verwaltung von Clustern, auf denen Apache Kafka ausgeführt wird. Mit Amazon MSK können Sie Ihre Anwendung für mehrere Availability Zones und aus Sicherheitsgründen mit AWS Identity and Access Management (IAM) konfigurieren. Amazon MSK unterstützt mehrere Open-Source-Versionen von Kafka.

Amazon MSK als Quelle funktioniert ähnlich wie die Verwendung von Amazon Simple Queue Service (AmazonSQS) oder Amazon Kinesis. EventBridgefragt intern nach neuen Nachrichten von der Quelle ab und ruft dann synchron das Ziel auf. EventBridge liest die Nachrichten stapelweise und stellt sie Ihrer Funktion als Event-Payload zur Verfügung. Die maximale Batchgröße ist konfigurierbar. (Der Standardwert beträgt 100 Nachrichten.)

EventBridge Unterstützt bei Quellen, die auf Apache Kafka basieren, die Verarbeitung von Steuerungsparametern wie Stapelverarbeitungsfenstern und Batchgröße.

EventBridge liest die Nachrichten sequentiell für jede Partition. Nach der EventBridge Verarbeitung jedes Batches werden die Offsets der Nachrichten in diesem Batch festgeschrieben. Wenn das Ziel der Pipe für eine der Nachrichten in einem Stapel einen Fehler zurückgibt, EventBridge wird der gesamte Nachrichtenstapel wiederholt, bis die Verarbeitung erfolgreich ist oder die Nachrichten ablaufen.

EventBridge sendet den Nachrichtenstapel für das Ereignis, wenn es das Ziel aufruft. Die Ereignisnutzlast enthält ein Array von Meldungen. Jedes Array-Element enthält Details zum MSK Amazon-Thema und zur Partitions-ID sowie einen Zeitstempel und eine Base64-codierte Nachricht.

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.

[ { "eventSource": "aws:kafka", "eventSourceArn": "arn:aws:kafka:sa-east-1:123456789012:cluster/vpc-2priv-2pub/751d2973-a626-431c-9d4e-d7975eb44dd7-2", "eventSourceKey": "mytopic-0", "topic": "mytopic", "partition": "0", "offset": 15, "timestamp": 1545084650987, "timestampType": "CREATE_TIME", "key":"abcDEFghiJKLmnoPQRstuVWXyz1234==", "value":"SGVsbG8sIHRoaXMgaXMgYSB0ZXN0Lg==", "headers": [ { "headerKey": [ 104, 101, 97, 100, 101, 114, 86, 97, 108, 117, 101 ] } ] } ]

Abfrage und Startposition des Streams

Beachten Sie, dass die Stream-Quellenabfrage bei der Pipe-Erstellung und -Aktualisierung letztendlich konsistent ist.

  • Bei der Pipe-Erstellung kann es mehrere Minuten dauern, bis mit der Abfrage von Ereignissen aus dem Stream begonnen wird.

  • Bei Pipe-Aktualisierungen der Quellenabfragekonfiguration kann es mehrere Minuten dauern, bis die Abfrage von Ereignissen aus dem Stream gestoppt und neu gestartet wird.

Dies bedeutet, dass, wenn Sie LATEST als Startposition für den Stream angeben, die Pipe möglicherweise Ereignisse übersehen könnte, die bei der Pipe-Erstellung oder -Aktualisierung gesendet werden. Um sicherzustellen, dass keine Ereignisse übersehen werden, geben Sie die Stream-Startposition als TRIM_HORIZON an.

MSKCluster-Authentifizierung

EventBridge benötigt die Erlaubnis, auf den MSK Amazon-Cluster zuzugreifen, Datensätze abzurufen und andere Aufgaben auszuführen. Amazon MSK unterstützt mehrere Optionen zur Steuerung des Client-Zugriffs auf den MSK Cluster. Weitere Informationen darüber, welche Authentifizierungsmethode wann verwendet wird, finden Sie unter Wie EventBridge wählt man einen Bootstrap-Broker.

Nicht authentifizierter Zugriff

Wir empfehlen, für die Entwicklung nur nicht authentifizierten Zugriff zu verwenden. Ein nicht authentifizierter Zugriff funktioniert nur, wenn die IAM rollenbasierte Authentifizierung für den Cluster deaktiviert ist.

SASL/Authentifizierung SCRAM

Amazon MSK unterstützt die Authentifizierung Simple Authentication und Security Layer/Salted Challenge Response Authentication Mechanism (SASL/SCRAM) mit Transport Layer Security (TLS) -Verschlüsselung. EventBridge Um eine Verbindung zum Cluster herzustellen, speichern Sie die Authentifizierungsdaten (Anmeldedaten) geheim. AWS Secrets Manager

Weitere Informationen zur Verwendung von Secrets Manager finden Sie unter Benutzername und Passwortauthentifizierung mit AWS Secrets Manager im Entwicklerhandbuch für Amazon Managed Streaming for Apache Kafka.

Amazon unterstützt MSK keine SASL PLAIN /Authentifizierung.

Auf IAM-Rolle basierende Authentifizierung

Sie können IAM es verwenden, um die Identität von Clients zu authentifizieren, die eine Verbindung zum MSK Cluster herstellen. Wenn die IAM Authentifizierung auf Ihrem MSK Cluster aktiv ist und Sie kein Geheimnis für die Authentifizierung angeben, EventBridge wird standardmäßig automatisch die Authentifizierung verwendetIAM. Verwenden Sie die Konsole oder, um IAM benutzer- oder rollenbasierte Richtlinien zu erstellen und bereitzustellen. IAM API Weitere Informationen finden Sie unter IAMZugriffskontrolle im Amazon Managed Streaming for Apache Kafka Developer Guide.

Damit Sie eine Verbindung EventBridge zum MSK Cluster herstellen, Datensätze lesen und andere erforderliche Aktionen ausführen können, fügen Sie der Ausführungsrolle Ihrer Pipes die folgenden Berechtigungen hinzu.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "kafka-cluster:Connect", "kafka-cluster:DescribeGroup", "kafka-cluster:AlterGroup", "kafka-cluster:DescribeTopic", "kafka-cluster:ReadData", "kafka-cluster:DescribeClusterDynamicConfiguration" ], "Resource": [ "arn:aws:kafka:region:account-id:cluster/cluster-name/cluster-uuid", "arn:aws:kafka:region:account-id:topic/cluster-name/cluster-uuid/topic-name", "arn:aws:kafka:region:account-id:group/cluster-name/cluster-uuid/consumer-group-id" ] } ] }

Sie können diese Berechtigungen für einen bestimmten Cluster, ein bestimmtes Thema und eine bestimmte Gruppe einteilen. Weitere Informationen finden Sie in den Amazon MSK Kafka-Aktionen im Amazon Managed Streaming for Apache Kafka Developer Guide.

Gegenseitige Authentifizierung TLS

Mutual TLS (mTLS) ermöglicht eine bidirektionale Authentifizierung zwischen dem Client und dem Server. Der Client sendet ein Zertifikat an den Server, damit der Server den Client überprüfen kann, und der Server sendet ein Zertifikat an den Client, damit der Client den Server überprüfen kann.

Für Amazon MSK EventBridge fungiert er als Kunde. Sie konfigurieren ein Client-Zertifikat (als Secret in Secrets Manager), um sich EventBridge bei den Brokern in Ihrem MSK Cluster zu authentifizieren. Das Clientzertifikat muss von einer Zertifizierungsstelle (CA) im Trust Store des Servers signiert sein. Der MSK Cluster sendet ein Serverzertifikat an, mit dem EventBridge die Broker authentifiziert werden. EventBridge Das Serverzertifikat muss von einer Zertifizierungsstelle signiert sein, die sich im AWS Trust Store befindet.

Amazon unterstützt MSK keine selbstsignierten Serverzertifikate, da alle Broker in Amazon öffentliche Zertifikate MSK verwenden, die von Amazon Trust Services signiert wurdenCAs, das EventBridge standardmäßig vertraut.

Weitere Informationen zu m TLS for Amazon MSK finden Sie unter Mutual TLS Authentication im Amazon Managed Streaming for Apache Kafka Developer Guide.

Konfiguration von m Secret TLS

Das CLIENT _ _ CERTIFICATE TLS _ AUTH Secret erfordert ein Zertifikatsfeld und ein Feld für den privaten Schlüssel. Für einen verschlüsselten privaten Schlüssel erfordert das Secret ein Passwort für den privaten Schlüssel. Sowohl das Zertifikat als auch der private Schlüssel müssen PEM ein Format haben.

Anmerkung

EventBridge unterstützt die Verschlüsselungsalgorithmen für private Schlüssel PBES1(aber nichtPBES2).

Das Zertifikatfeld muss eine Liste von Zertifikaten enthalten, beginnend mit dem Client-Zertifikat, gefolgt von etwaigen Zwischenzertifikaten und endend mit dem Root-Zertifikat. Jedes Zertifikat muss in einer neuen Zeile mit der folgenden Struktur beginnen:

-----BEGIN CERTIFICATE----- <certificate contents> -----END CERTIFICATE-----

Secrets Manager unterstützt Secrets von bis zu 65 536 Bytes, was genügend Platz für lange Zertifikatsketten bietet.

Der private Schlüssel muss das Format PKCS#8 haben und die folgende Struktur haben:

-----BEGIN PRIVATE KEY----- <private key contents> -----END PRIVATE KEY-----

Verwenden Sie für einen verschlüsselten privaten Schlüssel die folgende Struktur:

-----BEGIN ENCRYPTED PRIVATE KEY----- <private key contents> -----END ENCRYPTED PRIVATE KEY-----

Das folgende Beispiel zeigt den Inhalt eines Geheimnisses für die TLS M-Authentifizierung unter Verwendung eines verschlüsselten privaten Schlüssels. Fügen Sie für einen verschlüsselten privaten Schlüssel das Passwort für den privaten Schlüssel in das Secret ein.

{ "privateKeyPassword": "testpassword", "certificate": "-----BEGIN CERTIFICATE----- MIIE5DCCAsygAwIBAgIRAPJdwaFaNRrytHBto0j5BA0wDQYJKoZIhvcNAQELBQAw ... j0Lh4/+1HfgyE2KlmII36dg4IMzNjAFEBZiCRoPimO40s1cRqtFHXoal0QQbIlxk cmUuiAii9R0= -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- MIIFgjCCA2qgAwIBAgIQdjNZd6uFf9hbNC5RdfmHrzANBgkqhkiG9w0BAQsFADBb ... rQoiowbbk5wXCheYSANQIfTZ6weQTgiCHCCbuuMKNVS95FkXm0vqVD/YpXKwA/no c8PH3PSoAaRwMMgOSA2ALJvbRz8mpg== -----END CERTIFICATE-----", "privateKey": "-----BEGIN ENCRYPTED PRIVATE KEY----- MIIFKzBVBgkqhkiG9w0BBQ0wSDAnBgkqhkiG9w0BBQwwGgQUiAFcK5hT/X7Kjmgp ... QrSekqF+kWzmB6nAfSzgO9IaoAaytLvNgGTckWeUkWn/V0Ck+LdGUXzAC4RxZnoQ zp2mwJn2NYB7AZ7+imp0azDZb+8YG2aUCiyqb6PnnA== -----END ENCRYPTED PRIVATE KEY-----" }

Wie EventBridge wählt man einen Bootstrap-Broker

EventBridge wählt einen Bootstrap-Broker auf der Grundlage der in Ihrem Cluster verfügbaren Authentifizierungsmethoden aus und legt fest, ob Sie ein Geheimnis für die Authentifizierung angeben. Wenn Sie ein Geheimnis für m TLS oderSASL/angebenSCRAM, EventBridge wird automatisch diese Authentifizierungsmethode ausgewählt. Wenn Sie kein Geheimnis angeben, EventBridge wählt die stärkste Authentifizierungsmethode, die auf Ihrem Cluster aktiv ist. Im Folgenden finden Sie die Reihenfolge der Priorität, in der ein Broker EventBridge ausgewählt wird, von der stärksten zur schwächsten Authentifizierung:

  • m TLS (für m ist ein Geheimnis vorgesehen) TLS

  • SASL/SCRAM(Geheimnis vorgesehen fürSASL/SCRAM)

  • SASLIAM(kein Geheimnis angegeben und die IAM Authentifizierung ist aktiv)

  • Nicht authentifiziert TLS (kein Geheimnis angegeben und die IAM Authentifizierung ist nicht aktiv)

  • Klartext (kein Geheimnis angegeben, und sowohl IAM Authentifizierung als auch „Nicht authentifiziertTLS“ sind nicht aktiv)

Anmerkung

Wenn keine Verbindung zum sichersten Brokertyp hergestellt werden EventBridge kann, wird nicht versucht, eine Verbindung zu einem anderen (schwächeren) Brokertyp herzustellen. Wenn Sie einen schwächeren Brokertyp wählen möchten EventBridge , deaktivieren Sie alle stärkeren Authentifizierungsmethoden in Ihrem Cluster.

Netzwerkkonfiguration

EventBridge muss Zugriff auf die Amazon Virtual Private Cloud (AmazonVPC) -Ressourcen haben, die mit Ihrem MSK Amazon-Cluster verknüpft sind.

  • Um auf Ihren MSK Amazon-Cluster zuzugreifen, EventBridge können Sie den ausgehenden Internetzugang für die Subnetze Ihrer Quelle verwenden. VPC Bei privaten Subnetzen kann es sich um ein NAT Gateway oder um Ihr eigenes handeln. NAT Stellen Sie sicher, dass der eine öffentliche IP-Adresse NAT hat und eine Verbindung zum Internet herstellen kann. Für öffentliche Subnetze müssen Sie VPC Endpoints verwenden (siehe unten).

  • 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. Sie können VPC Endpoints auch verwenden, um die Bereitstellung von Kafka-Clustern in öffentlichen Subnetzen zu unterstützen.

    Informationen zum Einrichten eines VPC Endpunkts finden Sie unter Erstellen eines VPC Endpunkts im AWS PrivateLink Benutzerhandbuch. 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 — Erlauben Sie den gesamten Datenverkehr auf dem MSK Amazon-Broker-Port für die für Ihre Quelle angegebenen Sicherheitsgruppen.

  • Ausgehende Regeln - Erlauben Sie allen Datenverkehr auf Port 443 für alle Ziele. Lassen Sie den gesamten Verkehr auf dem MSK Amazon-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 MSK API auffindbar. Sie müssen sie während der Einrichtung nicht konfigurieren.

Anpassbare Konsumentengruppen-ID

Wenn Sie Apache Kafka als Quelle einrichten, können Sie eine Konsumentengruppen-ID angeben. Diese Konsumentengruppen-ID ist eine vorhandene Kennung für die Apache-Kafka-Konsumentengruppe, der Ihre Pipe beitreten soll. Sie können diese Funktion verwenden, um alle laufenden Einstellungen zur Verarbeitung von Apache Kafka-Datensätzen von anderen Benutzern zu migrieren. EventBridge

Wenn Sie eine Konsumentengruppen-ID angeben und sie innerhalb dieser Konsumentengruppe weitere aktive Poller gibt, verteilt Apache Kafka Nachrichten an alle Konsumenten. Mit anderen Worten, empfängt EventBridge nicht alle Nachrichten zum Apache Kafka-Thema. Wenn Sie alle Nachrichten im Thema bearbeiten EventBridge möchten, schalten Sie alle anderen Poller in dieser Nutzergruppe aus.

Wenn Sie außerdem eine Nutzergruppen-ID angeben und Apache Kafka eine gültige bestehende Nutzergruppe mit derselben ID findet, EventBridge ignoriert Apache Kafka den StartingPosition Parameter für Ihre Pipe. EventBridge Beginnt stattdessen mit der Verarbeitung von Datensätzen entsprechend dem festgeschriebenen Offset der Nutzergruppe. Wenn Sie eine Nutzergruppen-ID angeben und Apache Kafka keine bestehende Nutzergruppe finden kann, EventBridge konfiguriert Apache Kafka Ihre Quelle mit der angegebenen. StartingPosition

Die Konsumentengruppen-ID, die Sie angeben, muss unter all Ihren Apache-Kafka-Ereignisquellen eindeutig sein. Nachdem Sie eine Pipe mit der angegebenen Konsumentengruppen-ID erstellt haben, können Sie diesen Wert nicht aktualisieren.

Automatische Skalierung der MSK Amazon-Quelle

Wenn Sie zum ersten Mal eine MSK Amazon-Quelle erstellen, EventBridge weist sie einen Consumer zu, um alle Partitionen im Apache Kafka-Thema zu verarbeiten. Jeder Verbraucher hat mehrere Prozessoren, die parallel laufen, um erhöhte Workloads zu bewältigen. Darüber hinaus EventBridge wird die Anzahl der Verbraucher je nach Arbeitslast automatisch nach oben oder unten skaliert. Um die Nachrichtenreihenfolge in jeder Partition beizubehalten, ist die maximale Anzahl von Verbrauchern pro Partition im Thema ein Verbraucher pro Partition.

In Intervallen von einer Minute EventBridge wird die Consumer-Offset-Verzögerung aller Partitionen im Thema ausgewertet. Wenn die Verzögerung zu hoch ist, empfängt die Partition Nachrichten schneller, als sie verarbeiten EventBridge kann. EventBridge Fügt bei Bedarf Benutzer zum Thema hinzu oder entfernt sie aus dem Thema. Der Skalierungsprozess zum Hinzufügen oder Entfernen von Verbrauchern erfolgt innerhalb von drei Minuten nach der Bewertung.

Wenn Ihr Ziel überlastet ist, wird die Anzahl der Verbraucher EventBridge reduziert. Diese Aktion reduziert den Workload für die Pipe, indem die Anzahl der Nachrichten reduziert wird, die Verbraucher abrufen und an die Pipe senden können.