Erstellen einer Lambda-Zuordnung von Ereignisquellen für eine selbstverwaltete Apache-Kafka-Ereignisquelle - AWS Lambda

Erstellen einer Lambda-Zuordnung von Ereignisquellen für eine selbstverwaltete Apache-Kafka-Ereignisquelle

Zum Erstellen einer Zuordnung von Ereignisquellen können Sie die Lambda-Konsole, die AWS Command Line Interface (CLI) oder ein AWS SDK verwenden.

Mit den folgenden Schritten in der Konsole fügen Sie einen selbstverwalteten Apache-Kafka-Cluster als Auslöser für Ihre Lambda-Funktion hinzu. Im Hintergrund wird dadurch eine Zuordnung von Ereignisquellen erstellt.

Voraussetzungen

  • Selbstverwaltetes Apache-Kafka-Cluster. Lambda unterstützt Apache Kafka Version 0.10.1.0 und höher.

  • Eine Ausführungsrolle mit der Berechtigung, auf die AWS-Ressourcen zuzugreifen, die Ihr selbstverwalteter Kafka-Cluster verwendet.

Hinzufügen eines selbstverwalteten Kafka-Clusters (Konsole)

Befolgen Sie diese Schritte, um Ihren selbstverwalteten Apache-Kafka-Cluster und ein Kafka-Thema als Auslöser für Ihre Lambda-Funktion hinzuzufügen.

So fügen Sie Ihrer Lambda-Funktion (Konsole) einen Apache-Kafka-Auslöser hinzu
  1. Öffnen Sie die Seite Funktionen der Lambda-Konsole.

  2. Wählen Sie den Namen Ihrer Lambda-Funktion aus.

  3. Wählen Sie unter Function overview (Funktionsübersicht) die Option Add trigger (Trigger hinzufügen).

  4. Führen Sie unter Auslöser-Konfiguration die folgenden Schritte aus:

    1. Wählen Sie den Apache-Kafka-Auslösertyp.

    2. Geben Sie für Bootstrap-Server die Host- und Portpaaradresse eines Kafka-Brokers in Ihrem Cluster ein und wählen Sie dann Hinzufügen. Wiederholen Sie den Vorgang für jeden Kafka-Broker im Cluster.

    3. Geben Sie für Themenname den Namen des Kafka-Themas ein, das zum Speichern von Datensätzen im Cluster verwendet wird.

    4. (Optional) Geben Sie für Batchgröße die maximale Anzahl von Datensätzen ein, die in einem einzelnen Batch empfangen werden sollen.

    5. Geben Sie für Batch window (Batch-Fenster) die maximale Zeit in Sekunden ein, die Lambda mit dem Sammeln von Datensätzen verbringt, bevor die Funktion aufgerufen wird.

    6. (Optional) Geben Sie für Konsumentengruppen-ID die ID einer Kafka-Konsumentengruppe ein, der Sie beitreten möchten.

    7. (Optional) Wählen Sie für Startposition die Option Neueste, um mit dem Lesen des Streams aus dem letzten Datensatz zu beginnen, Horizont trimmen, um mit dem frühesten verfügbaren Datensatz zu beginnen, oder Am Zeitstempel, um einen Zeitstempel anzugeben, ab dem mit dem Lesen begonnen werden soll.

    8. (Optional) Wählen Sie bei VPC die Amazon VPC für Ihren Kafka-Cluster aus. Wählen Sie dann VPC subnets (VPC-Subnetze) und VPC security groups (VPC-Sicherheitsgruppen) aus.

      Diese Einstellung ist erforderlich, wenn nur Benutzer innerhalb Ihrer VPC auf Ihre Broker zugreifen.

    9. (Optional) Wählen Sie bei Authentication (Authentifizierung) die Option Add (Hinzufügen) aus und gehen Sie dann folgendermaßen vor:

      1. Wählen Sie das Zugriffs- oder Authentifizierungsprotokoll der Kafka-Broker in Ihrem Cluster aus.

        • Wenn Ihr Kafka-Broker eine SASL/PLAIN-Authentifizierung verwendet, wählen Sie BASIC_AUTH.

        • Wenn Ihr Broker die SASL/SCRAM-Authentifizierung verwendet, wählen Sie eines der SASL_SCRAM-Protokolle aus.

        • Falls Sie die mTLS-Authentifizierung konfigurieren, wählen Sie das Protokoll CLIENT_CERTIFICATE_TLS_AUTH aus.

      2. Wählen Sie für SASL/SCRAM- oder mTLS-Authentifizierung den Secrets-Manager-Geheimschlüssel aus, der die Anmeldeinformationen für Ihren Kafka-Cluster enthält.

    10. (Optional) Wählen Sie bei Encryption (Verschlüsselung) das Secrets-Manager-Secret aus, das das Root-CA-Zertifikat enthält, das Ihre Kafka-Broker zur TLS-Verschlüsselung verwenden, falls Ihre Kafka-Broker von einer privaten Zertifizierungsstelle signierte Zertifikate verwenden.

      Diese Einstellung gilt für die TLS-Verschlüsselung für SASL/SCRAM oder SASL/PLAIN sowie für die mTLS-Authentifizierung.

    11. Um den Auslöser zu Testzwecken in einem deaktivierten Zustand zu erstellen (empfohlen), deaktivieren Sie Auslöser aktivieren. Um den Auslöser sofort zu aktivieren, wählen Sie Auslöser aktivieren.

  5. Wählen Sie hinzufügen aus, um den Auslöser zu erstellen.

Selbstverwaltetes Apache-Kafka-Cluster hinzufügen (AWS CLI)

Verwenden Sie die folgenden AWS CLI-Beispielbefehle, um einen selbstverwalteten Apache-Kafka-Auslöser für Ihre Lambda-Funktion zu erstellen und anzuzeigen.

Verwenden von SASL/SCRAM

Wenn Kafka-Benutzer über das Internet auf Ihre Kafka-Broker zugreifen, geben Sie das Secrets-Manager-Secret an, das Sie für die SASL/SCRAM-Authentifizierung erstellt haben. Im folgenden Beispiel wird der create-event-source-mapping-Befehl AWS CLI verwendet, um eine Lambda-Funktion namens my-kafka-function einem Kafka-Thema namens AWSKafkaTopic zuzuordnen.

aws lambda create-event-source-mapping \ --topics AWSKafkaTopic \ --source-access-configuration Type=SASL_SCRAM_512_AUTH,URI=arn:aws:secretsmanager:us-east-1:111122223333:secret:MyBrokerSecretName \ --function-name arn:aws:lambda:us-east-1:111122223333:function:my-kafka-function \ --self-managed-event-source '{"Endpoints":{"KAFKA_BOOTSTRAP_SERVERS":["abc3.xyz.com:9092", "abc2.xyz.com:9092"]}}'

Verwenden einer VPC

Wenn nur Kafka-Benutzer in Ihrer VPC auf Ihre Kafka-Broker zugreifen, müssen Sie Ihre VPC, Subnetze und VPC-Sicherheitsgruppe angeben. Im folgenden Beispiel wird der create-event-source-mapping-Befehl AWS CLI verwendet, um eine Lambda-Funktion namens my-kafka-function einem Kafka-Thema namens AWSKafkaTopic zuzuordnen.

aws lambda create-event-source-mapping \ --topics AWSKafkaTopic \ --source-access-configuration '[{"Type": "VPC_SUBNET", "URI": "subnet:subnet-0011001100"}, {"Type": "VPC_SUBNET", "URI": "subnet:subnet-0022002200"}, {"Type": "VPC_SECURITY_GROUP", "URI": "security_group:sg-0123456789"}]' \ --function-name arn:aws:lambda:us-east-1:111122223333:function:my-kafka-function \ --self-managed-event-source '{"Endpoints":{"KAFKA_BOOTSTRAP_SERVERS":["abc3.xyz.com:9092", "abc2.xyz.com:9092"]}}'

Anzeigen des Zustands mithilfe des AWS CLI

Das folgende Beispiel verwendet get-event-source-mapping AWS CLI, um den Status der Zuordnung von Ereignisquellen zu beschreiben, die Sie erstellt haben.

aws lambda get-event-source-mapping --uuid dh38738e-992b-343a-1077-3478934hjkfd7