

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.

# Konfigurieren von Amazon MSK-Ereignisquellen für Lambda
<a name="with-msk-configure"></a>

Um einen selbstverwalteten Amazon-MSK-Cluster als Ereignisquelle für Ihre Lambda-Funktion zu verwenden, erstellen Sie eine [Zuordnung von Ereignisquellen](invocation-eventsourcemapping.md), die die beiden Ressourcen miteinander verbindet. Auf dieser Seite wird beschrieben, wie Sie eine Zuordnung von Ereignisquellen für Amazon MSK erstellen.

Auf dieser Seite wird davon ausgegangen, dass Sie Ihren MSK-Cluster und die [Amazon Virtual Private Cloud (VPC)](https://docs.aws.amazon.com/vpc/latest/userguide/what-is-amazon-vpc.html), in der er sich befindet, bereits ordnungsgemäß konfiguriert haben. Wenn Sie Ihren Cluster oder Ihre VPC einrichten müssen, finden Sie entsprechende Informationen unter [Konfiguration Ihres Amazon-MSK-Clusters und Ihres Amazon-VPC-Netzwerks für Lambda](with-msk-cluster-network.md). Informationen zum Konfigurieren des Wiederholungsverhaltens für die Fehlerbehandlung finden Sie unter[Konfiguration der Fehlerbehandlungssteuerungen für Kafka-Ereignisquellen](kafka-retry-configurations.md).

**Topics**
+ [Verwenden eines Amazon MSK-Clusters als Ereignisquelle](#msk-esm-overview)
+ [Konfiguration von Amazon MSK-Cluster-Authentifizierungsmethoden in Lambda](msk-cluster-auth.md)
+ [Erstellen einer Lambda-Zuordnung von Ereignisquellen für eine Amazon-MSK-Ereignisquelle](msk-esm-create.md)
+ [Erstellen von kontenübergreifenden Zuordnungen von Ereignisquellen in Lambda](msk-cross-account.md)
+ [Alle Amazon-MSK-Konfigurationsparameter von Ereignisquellen in Lambda](msk-esm-parameters.md)

## Verwenden eines Amazon MSK-Clusters als Ereignisquelle
<a name="msk-esm-overview"></a>

Wenn Sie Ihren Apache Kafka-Cluster oder Amazon MSK als Auslöser für Ihre Lambda-Funktion hinzufügen, wird der Cluster als [Ereignisquelle](invocation-eventsourcemapping.md) verwendet.

Lambda liest Ereignisdaten aus den Kafka-Themen, die Sie wie `Topics` in einer [CreateEventSourceMapping](https://docs.aws.amazon.com/lambda/latest/api/API_CreateEventSourceMapping.html)Anfrage angeben, basierend auf der von Ihnen angegebenen [Startposition](kafka-starting-positions.md). Nach erfolgreicher Verarbeitung wird Ihr Kafka-Thema Ihrem Kafka-Cluster zugeordnet.

Lambda liest Nachrichten sequentiell für jede Kafka-Themenpartition. Eine einzelne Lambda-Nutzlast kann Nachrichten von mehreren Partitionen enthalten. Wenn mehr Datensätze verfügbar sind, setzt Lambda die Verarbeitung von Datensätzen stapelweise fort, basierend auf dem BatchSize Wert, den Sie in einer [CreateEventSourceMapping](https://docs.aws.amazon.com/lambda/latest/api/API_CreateEventSourceMapping.html)Anfrage angeben, bis Ihre Funktion das Thema eingeholt hat.

Nachdem Lambda jeden Batch verarbeitet hat, werden die Offsets der Nachrichten in diesem Batch festgeschrieben. Wenn Ihre Funktion einen Fehler für eine der Nachrichten in einem Batch zurückgibt, wiederholt Lambda den gesamten Nachrichtenbatch, bis die Verarbeitung erfolgreich ist oder die Nachrichten ablaufen. Sie können Datensätze, bei denen alle Wiederholungsversuche fehlschlagen, zur späteren Verarbeitung an ein Ausfallziel senden.

**Anmerkung**  
Während Lambda-Funktionen in der Regel ein maximales Timeout-Limit von 15 Minuten haben, unterstützen Ereignisquellenzuordnungen für Amazon MSK, selbstverwaltetes Apache Kafka, Amazon DocumentDB, Amazon MQ für ActiveMQ und RabbitMQ nur Funktionen mit einem maximalen Timeout-Limit von 14 Minuten.

# Konfiguration von Amazon MSK-Cluster-Authentifizierungsmethoden in Lambda
<a name="msk-cluster-auth"></a>

Lambda benötigt eine Berechtigung, um auf Ihren Amazon-MSK-Cluster zuzugreifen, Datensätze abzurufen und andere Aufgaben auszuführen. Amazon MSK unterstützt mehrere Methoden zur Authentifizierung bei Ihrem MSK-Cluster.

**Topics**
+ [Nicht authentifizierter Zugriff](#msk-unauthenticated)
+ [SASL/SCRAM-Authentifizierung](#msk-sasl-scram)
+ [Gegenseitige TLS-Authentifizierung](#msk-mtls)
+ [IAM-Authentifizierung](#msk-iam-auth)
+ [So wählt Lambda einen Bootstrap-Broker](#msk-bootstrap-brokers)

## Nicht authentifizierter Zugriff
<a name="msk-unauthenticated"></a>

Wenn keine Clients über das Internet auf den Cluster zugreifen, können Sie einen nicht authentifizierten Zugriff verwenden.

## SASL/SCRAM-Authentifizierung
<a name="msk-sasl-scram"></a>

Lambda unterstützt die [Authentifizierung Simple Authentication und Security Layer/Salted Challenge Response Authentication Mechanism (SASL/SCRAM)](https://docs.aws.amazon.com/msk/latest/developerguide/msk-password-tutorial.html) mit der SHA-512-Hash-Funktion und der Transport Layer Security (TLS) -Verschlüsselung. Damit Lambda eine Verbindung zum Cluster herstellen kann, speichern Sie die Authentifizierungsanmeldeinformationen (Benutzername und Passwort) in einem Secrets-Manager-Geheimnis und verweisen Sie bei der Konfiguration Ihrer Zuordnung von Ereignisquellen auf dieses Geheimnis.

Weitere Informationen zur Verwendung von Secrets Manager finden Sie unter [Authentifizierung der Anmeldeinformationen mit Secrets Manager](https://docs.aws.amazon.com/msk/latest/developerguide/msk-password.html) im *Entwicklerhandbuch für Amazon Managed Streaming for Kafka*.

**Anmerkung**  
Amazon MSK unterstützt keine SASL/PLAIN Authentifizierung.

## Gegenseitige TLS-Authentifizierung
<a name="msk-mtls"></a>

Gegenseitige TLS (mTLS) bietet eine bidirektionale Authentifizierung zwischen Client und Server. Der Client sendet ein Zertifikat an den Server, damit dieser den Client überprüfen kann. Der Server sendet ebenfalls ein Zertifikat an den Client, damit dieser den Server überprüfen kann.

Bei Amazon-MSK-Integrationen mit Lambda fungiert Ihr MSK-Cluster als Server und Lambda als Client.
+ Damit Lambda Ihren MSK-Cluster überprüfen kann, konfigurieren Sie ein Client-Zertifikat als Geheimnis in Secrets Manager und verweisen Sie in Ihrer Konfiguration der Zuordnung von Ereignisquellen auf dieses Zertifikat. Das Clientzertifikat muss von einer Zertifizierungsstelle (CA) im Trust Store des Servers signiert sein.
+ Der MSK-Cluster sendet auch ein Serverzertifikat an Lambda. Das Serverzertifikat muss von einer Zertifizierungsstelle (CA) im AWS Trust Store signiert werden.

Amazon MSK unterstützt keine selbstsignierten Serverzertifikate. Alle Broker in Amazon MSK verwenden [öffentliche Zertifikate](https://docs.aws.amazon.com/msk/latest/developerguide/msk-encryption.html), die von [Amazon Trust Services](https://www.amazontrust.com/repository/) signiert wurden CAs, denen Lambda standardmäßig vertraut.

### Konfigurieren des mTLS-Secrets
<a name="mtls-auth-secret"></a>

Das Secret CLIENT\$1CERTIFICATE\$1TLS\$1AUTH erfordert ein Zertifikatfeld und ein Feld für einen 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 im PEM-Format vorliegen.

**Anmerkung**  
Lambda unterstützt die Verschlüsselungsalgorithmen mit privaten Schlüsseln [PBES1](https://datatracker.ietf.org/doc/html/rfc2898/#section-6.1)(aber nicht PBES2).

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 im Format [PKCS \$18](https://datatracker.ietf.org/doc/html/rfc5208) mit folgender Struktur vorliegen:

```
-----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-----
```

Im folgenden Beispiel sehen Sie den Inhalt eines Secrets für mTLS-Authentifizierung mit einem verschlüsselten privaten Schlüssel. 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-----"
}
```

Weitere Informationen zu mTLS für Amazon MSK und Anweisungen zum Generieren eines Clientzertifikats finden Sie unter [Gegenseitige TLS-Authentifizierung für Amazon MSK](https://docs.aws.amazon.com/msk/latest/developerguide/msk-authentication.html) im *Entwicklerhandbuch für Amazon Managed Streaming for Apache Kafka*.

## IAM-Authentifizierung
<a name="msk-iam-auth"></a>

Sie können AWS Identity and Access Management (IAM) verwenden, um die Identität von Clients zu authentifizieren, die eine Verbindung zum MSK-Cluster herstellen. Bei der IAM-Authentifizierung nutzt Lambda die Berechtigungen in der [Ausführungsrolle](lambda-intro-execution-role.md) Ihrer Funktion, um eine Verbindung zum Cluster herzustellen, Datensätze abzurufen und andere erforderliche Aktionen auszuführen. Ein Beispiel für eine Richtlinie, welche die erforderlichen Berechtigungen enthält, finden Sie unter [Erstellen von Autorisierungsrichtlinien für die IAM-Rolle](https://docs.aws.amazon.com/msk/latest/developerguide/create-iam-access-control-policies.html) im *Entwicklerhandbuch für Amazon Managed Streaming for Apache Kafka*.

Wenn die IAM-Authentifizierung für Ihren MSK-Cluster aktiv ist und Sie kein Geheimnis angeben, verwendet Lambda automatisch standardmäßig die IAM-Authentifizierung.

Weitere Informationen zur IAM-Authentifizierung in Amazon MSK finden Sie unter [IAM-Zugriffskontrolle](https://docs.aws.amazon.com/msk/latest/developerguide/iam-access-control.html).

## So wählt Lambda einen Bootstrap-Broker
<a name="msk-bootstrap-brokers"></a>

Lambda wählt einen [Bootstrap-Broker](https://docs.aws.amazon.com/msk/latest/developerguide/msk-get-bootstrap-brokers.html) basierend auf den auf Ihrem Cluster verfügbaren Authentifizierungsmethoden aus und ob Sie ein Geheimnis für die Authentifizierung angeben.. Wenn Sie ein Geheimnis für MTLs oder SASL/SCRAM angeben, wählt Lambda automatisch diese Authentifizierungsmethode. Wenn Sie kein Geheimnis angeben, wählt Lambda die stärkste Authentifizierungsmethode aus, die in Ihrem Cluster aktiv ist. Im Folgenden ist die Reihenfolge der Priorität aufgeführt, in der Lambda einen Broker auswählt, von der stärksten zur schwächsten Authentifizierung:
+ mTLS (Geheimnis für mTLS bereitgestellt)
+ SASL/SCRAM (secret provided for SASL/SCRAM)
+ SASL IAM (kein Geheimnis angegeben und IAM-Authentifizierung aktiv)
+ Nicht authentifiziertes TLS (kein Geheimnis bereitgestellt und IAM-Authentifizierung nicht aktiv)
+ Klartext (kein Geheimnis angegeben und sowohl IAM-Authentifizierung als auch nicht authentifiziertes TLS sind nicht aktiv)

**Anmerkung**  
Wenn Lambda keine Verbindung zum sichersten Brokertyp herstellen kann, versucht Lambda nicht, eine Verbindung zu einem anderen (schwächeren) Brokertyp herzustellen. Wenn Sie möchten, dass Lambda einen schwächeren Brokertyp wählt, deaktivieren Sie alle stärkeren Authentifizierungsmethoden in Ihrem Cluster.

# Erstellen einer Lambda-Zuordnung von Ereignisquellen für eine Amazon-MSK-Ereignisquelle
<a name="msk-esm-create"></a>

Zum Erstellen einer Zuordnung von Ereignisquellen können Sie die Lambda-Konsole, die [AWS Command Line Interface (CLI)](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html) oder ein [AWS SDK](https://aws.amazon.com/getting-started/tools-sdks/) verwenden.

**Anmerkung**  
Wenn Sie die Zuordnung von Ereignisquellen erstellen, erstellt Lambda eine [Hyperplane-ENI](configuration-vpc.md#configuration-vpc-enis) im privaten Subnetz, das Ihren MSK-Cluster enthält, sodass Lambda eine sichere Verbindung herstellen kann. Diese Hyperplane-ENI ermöglicht die Verwendung der Subnetz- und Sicherheitsgruppenkonfiguration Ihres MSK-Clusters, nicht Ihrer Lambda-Funktion.

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

**So fügen Sie Ihrer Lambda-Funktion (Konsole) einen Amazon MSK-Trigger hinzu**

1. Öffnen Sie die Seite [Funktion](https://console.aws.amazon.com/lambda/home#/functions) der Lambda-Konsole.

1. Wählen Sie den Namen der Lambda-Funktion aus, der Sie einen Amazon-MSK-Auslöser hinzufügen möchten.

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

1. Wählen Sie unter **Auslöser-Konfiguration** die Option **MSK** aus.

1. Führen Sie die folgenden Schritte aus, um Ihre Kafka-Cluster-Details anzugeben:

   1. Wählen Sie für **MSK-Cluster** Ihren Cluster aus.

   1. Geben Sie für **Themenname** den Namen des Kafka-Themas ein, von dem Nachrichten verbraucht werden sollen.

   1. Geben Sie für **Verbrauchergruppen-ID** ggf. die ID einer Kafka-Verbrauchergruppe ein, der Sie beitreten möchten. Weitere Informationen finden Sie unter [Anpassbare Verbrauchergruppen-ID in Lambda](kafka-consumer-group-id.md).

1. Nehmen Sie für die **Cluster-Authentifizierung** die erforderlichen Konfigurationen vor. Weitere Informationen über Cluster-Authentifizierung finden Sie unter [Konfiguration von Amazon MSK-Cluster-Authentifizierungsmethoden in Lambda](msk-cluster-auth.md).
   + Aktivieren Sie **Authentifizierung verwenden**, wenn Lambda beim Verbindungsaufbau die Authentifizierung bei Ihrem MSK-Cluster durchführen soll. Die Authentifizierung wird empfohlen.
   + Wenn Sie Authentifizierung verwenden, wählen Sie für **Authentifizierungsmethode** die zu verwendende Authentifizierungsmethode aus.
   + Wenn Sie Authentifizierung verwenden, wählen Sie für **Secrets-Manager-Schlüssel** den Secrets-Manager-Schlüssel aus, der die für den Zugriff auf Ihren Cluster erforderlichen Authentifizierungsanmeldeinformationen enthält.

1. Nehmen Sie unter **Konfiguration des Ereignis-Pollers** die erforderlichen Konfigurationen vor.
   + Wählen Sie **Auslöser aktivieren**, um den Auslöser unmittelbar nach der Erstellung zu aktivieren.
   + Wählen Sie aus, ob Sie den **Bereitstellungsmodus** für Ihre Zuordnung von Ereignisquellen konfigurieren möchten. Weitere Informationen finden Sie unter [Skalierungsmodi des Ereignis-Pollers von Apache Kafka in Lambda](kafka-scaling-modes.md).
     + Wenn Sie den Bereitstellungsmodus konfigurieren, geben Sie einen Wert für **Minimale Anzahl von Ereignisabfragen**, einen Wert für **Maximale Anzahl von Ereignisabfragen** und einen optionalen Wert ein, PollerGroupName um die Gruppierung mehrerer ESMs innerhalb derselben Ereignisquellen-VPC anzugeben.
   + Wählen Sie unter **Startposition** aus, wie Lambda mit dem Lesen aus Ihrem Stream beginnen soll. Weitere Informationen finden Sie unter [Apache-Kafka-Abfrage und Stream-Startpositionen in Lambda](kafka-starting-positions.md).

1. Nehmen Sie unter **Batching** die erforderlichen Konfigurationen vor. Weitere Informationen zu Batching finden Sie unter [Batching-Verhalten](invocation-eventsourcemapping.md#invocation-eventsourcemapping-batching).

   1. Geben Sie für **Batchgröße** die maximale Anzahl von Nachrichten ein, die in einem einzelnen Batch empfangen werden sollen.

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

1. Nehmen Sie unter **Filterung** die erforderlichen Konfigurationen vor. Weitere Informationen zur Filterung erhalten Sie unter [Filtern von Ereignissen aus Amazon MSK und selbstverwalteten Apache-Kafka-Ereignisquellen](kafka-filtering.md).
   + Fügen Sie unter **Filterkriterien** Definitionen für Filterkriterien hinzu, um zu bestimmen, ob ein Ereignis verarbeitet werden soll oder nicht.

1. Nehmen Sie unter **Fehlerbehandlung** die erforderlichen Konfigurationen vor. Weitere Informationen zur Fehlerbehandlung finden Sie unter [Erfassen verworfener Batches für Amazon MSK und selbstverwaltete Apache-Kafka-Ereignisquellen](kafka-on-failure.md).
   + Geben Sie für **Fehlerziel** den ARN Ihres Fehlerziels an.

1. Geben Sie unter **Tags** die Tags ein, die dieser Zuordnung von Ereignisquellen zugeordnet werden sollen.

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

Sie können die Ereignisquellenzuordnung auch mithilfe der AWS CLI mit dem [ create-event-source-mapping](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/lambda/create-event-source-mapping.html)Befehl erstellen. Im folgenden Beispiel wird eine Zuordnung von Ereignisquellen erstellt, um die Lambda-Funktion `my-msk-function` ab der `LATEST`-Nachricht dem `AWSKafkaTopic`-Thema zuzuordnen. Dieser Befehl verwendet das [SourceAccessConfiguration](https://docs.aws.amazon.com/lambda/latest/api/API_SourceAccessConfiguration.html)Objekt auch, um Lambda anzuweisen, bei der Verbindung mit dem Cluster die [SASL/SCRAM-Authentifizierung](msk-cluster-auth.md#msk-sasl-scram) zu verwenden.

```
aws lambda create-event-source-mapping \
  --event-source-arn arn:aws:kafka:us-east-1:111122223333:cluster/my-cluster/fc2f5bdf-fd1b-45ad-85dd-15b4a5a6247e-2 \
  --topics AWSKafkaTopic \
  --starting-position LATEST \
  --function-name my-kafka-function
  --source-access-configurations '[{"Type": "SASL_SCRAM_512_AUTH","URI": "arn:aws:secretsmanager:us-east-1:111122223333:secret:my-secret"}]'
```

Wenn der Cluster [mTLS-Authentifizierung verwendet](msk-cluster-auth.md#msk-mtls), fügen Sie ein [SourceAccessConfiguration](https://docs.aws.amazon.com/lambda/latest/api/API_SourceAccessConfiguration.html)Objekt hinzu, das einen Secrets Manager Manager-Schlüssel-ARN spezifiziert`CLIENT_CERTIFICATE_TLS_AUTH`. Das wird im folgenden Befehl veranschaulicht:

```
aws lambda create-event-source-mapping \
  --event-source-arn arn:aws:kafka:us-east-1:111122223333:cluster/my-cluster/fc2f5bdf-fd1b-45ad-85dd-15b4a5a6247e-2 \
  --topics AWSKafkaTopic \
  --starting-position LATEST \
  --function-name my-kafka-function
  --source-access-configurations '[{"Type": "CLIENT_CERTIFICATE_TLS_AUTH","URI": "arn:aws:secretsmanager:us-east-1:111122223333:secret:my-secret"}]'
```

Wenn der Cluster die [IAM-Authentifizierung](msk-cluster-auth.md#msk-iam-auth) verwendet, benötigen Sie kein [ SourceAccessConfiguration](https://docs.aws.amazon.com/lambda/latest/api/API_SourceAccessConfiguration.html)Objekt. Das wird im folgenden Befehl veranschaulicht:

```
aws lambda create-event-source-mapping \
  --event-source-arn arn:aws:kafka:us-east-1:111122223333:cluster/my-cluster/fc2f5bdf-fd1b-45ad-85dd-15b4a5a6247e-2 \
  --topics AWSKafkaTopic \
  --starting-position LATEST \
  --function-name my-kafka-function
```

# Erstellen von kontenübergreifenden Zuordnungen von Ereignisquellen in Lambda
<a name="msk-cross-account"></a>

Sie können [private Multi-VPC-Konnektivität](https://docs.aws.amazon.com/msk/latest/developerguide/aws-access-mult-vpc.html) verwenden, um eine Lambda-Funktion mit einem bereitgestellten MSK-Cluster in einem anderen AWS-Konto zu verbinden. Multi-VPC-Konnektivität verwendet AWS PrivateLink, wodurch der gesamte Datenverkehr im AWS Netzwerk bleibt.

**Anmerkung**  
Sie können keine kontenübergreifenden Zuordnungen von Ereignisquellen für Serverless-MSK-Cluster erstellen.

Um eine kontenübergreifende Zuordnung von Ereignisquellen zu erstellen, müssen Sie zunächst die [Multi-VPC-Konnektivität für den MSK-Cluster konfigurieren](https://docs.aws.amazon.com/msk/latest/developerguide/aws-access-mult-vpc.html#mvpc-cluster-owner-action-turn-on). Verwenden Sie beim Erstellen der Zuordnung von Ereignisquellen den ARN der verwalteten VPC-Verbindung anstelle des Cluster-ARNs, wie in den folgenden Beispielen gezeigt. Der [CreateEventSourceMapping](https://docs.aws.amazon.com/lambda/latest/api/API_CreateEventSourceMapping.html)Vorgang unterscheidet sich auch je nachdem, welchen Authentifizierungstyp der MSK-Cluster verwendet.

**Example – Erstellen Sie eine kontoübergreifende Zuordnung von Ereignisquellen für einen Cluster, der die IAM-Authentifizierung verwendet**  
Wenn der Cluster die [rollenbasierte IAM-Authentifizierung verwendet, benötigen](msk-cluster-auth.md#msk-iam-auth) Sie kein Objekt. [SourceAccessConfiguration](https://docs.aws.amazon.com/lambda/latest/api/API_SourceAccessConfiguration.html) Beispiel:  

```
aws lambda create-event-source-mapping \
  --event-source-arn arn:aws:kafka:us-east-1:111122223333:vpc-connection/444455556666/my-cluster-name/51jn98b4-0a61-46cc-b0a6-61g9a3d797d5-7 \
  --topics AWSKafkaTopic \
  --starting-position LATEST \
  --function-name my-kafka-function
```

**Example — Erstellen Sie eine kontenübergreifende Zuordnung von Ereignisquellen für einen Cluster, der Authentifizierung verwendet SASL/SCRAM**  
Wenn der Cluster die [SASL/SCRAM-Authentifizierung](msk-cluster-auth.md#msk-sasl-scram) verwendet, müssen Sie ein [SourceAccessConfiguration](https://docs.aws.amazon.com/lambda/latest/api/API_SourceAccessConfiguration.html)Objekt angeben, das einen geheimen Secrets Manager Manager-ARN spezifiziert, `SASL_SCRAM_512_AUTH` und einen geheimen ARN hinzufügen.  
Es gibt zwei Möglichkeiten, Geheimnisse für kontoübergreifende Amazon MSK-Ereignisquellenzuordnungen mit Authentifizierung zu verwenden: SASL/SCRAM   
+ Erstellen Sie ein Secret im Lambda-Funktionskonto und synchronisieren Sie es mit dem Cluster-Secret. [Erstellen Sie eine Rotation](https://docs.aws.amazon.com/secretsmanager/latest/userguide/rotating-secrets.html), um die beiden Secrets synchron zu halten. Mit dieser Option können Sie das Secret vom Funktionskonto aus kontrollieren.
+ Verwenden Sie das Secret, das dem MSK-Cluster zugeordnet ist. Dieses Secret muss kontoübergreifenden Zugriff auf das Lambda-Funktionskonto ermöglichen. Weitere Informationen finden Sie unter [Berechtigungen für AWS Secrets Manager -Secrets für Benutzer in einem anderen Konto](https://docs.aws.amazon.com/secretsmanager/latest/userguide/auth-and-access_examples_cross.html).

```
aws lambda create-event-source-mapping \
  --event-source-arn arn:aws:kafka:us-east-1:111122223333:vpc-connection/444455556666/my-cluster-name/51jn98b4-0a61-46cc-b0a6-61g9a3d797d5-7 \
  --topics AWSKafkaTopic \
  --starting-position LATEST \
  --function-name my-kafka-function \
  --source-access-configurations '[{"Type": "SASL_SCRAM_512_AUTH","URI": "arn:aws:secretsmanager:us-east-1:444455556666:secret:my-secret"}]'
```

**Example – Erstellen Sie eine kontoübergreifende Zuordnung von Ereignisquellen für einen Cluster, der die mTLS-Authentifizierung verwendet**  
Wenn der Cluster [mTLS-Authentifizierung](msk-cluster-auth.md#msk-mtls) verwendet, müssen Sie ein [SourceAccessConfiguration](https://docs.aws.amazon.com/lambda/latest/api/API_SourceAccessConfiguration.html)Objekt angeben, das einen geheimen ARN von Secrets Manager spezifiziert`CLIENT_CERTIFICATE_TLS_AUTH`. Das Secret kann im Clusterkonto oder im Lambda-Funktionskonto gespeichert werden.  

```
aws lambda create-event-source-mapping \
  --event-source-arn arn:aws:kafka:us-east-1:111122223333:vpc-connection/444455556666/my-cluster-name/51jn98b4-0a61-46cc-b0a6-61g9a3d797d5-7 \
  --topics AWSKafkaTopic \
  --starting-position LATEST \
  --function-name my-kafka-function \
  --source-access-configurations '[{"Type": "CLIENT_CERTIFICATE_TLS_AUTH","URI": "arn:aws:secretsmanager:us-east-1:444455556666:secret:my-secret"}]'
```

# Alle Amazon-MSK-Konfigurationsparameter von Ereignisquellen in Lambda
<a name="msk-esm-parameters"></a>

Alle Lambda-Ereignisquelltypen verwenden dieselben [CreateEventSourceMapping[UpdateEventSourceMapping](https://docs.aws.amazon.com/lambda/latest/api/API_UpdateEventSourceMapping.html)](https://docs.aws.amazon.com/lambda/latest/api/API_CreateEventSourceMapping.html)API-Operationen. Allerdings gelten nur einige der Parameter für selbstverwaltetes Amazon MSK, wie in der folgenden Tabelle dargestellt.


| Parameter | Erforderlich | Standard | Hinweise | 
| --- | --- | --- | --- | 
|  AmazonManagedKafkaEventSourceConfig  |  N  |  Enthält das ConsumerGroupId Feld, das standardmäßig einen eindeutigen Wert hat.  |  Kann nur auf „Erstellen“ festgelegt werden  | 
|  BatchSize  |  N  |  100  |  Höchstwert: 10 000.  | 
|  DestinationConfig  |  N  |  –  |  [Erfassen verworfener Batches für Amazon MSK und selbstverwaltete Apache-Kafka-Ereignisquellen](kafka-on-failure.md)  | 
|  Aktiviert  |  N  |  Wahr  |    | 
|  BisectBatchOnFunctionError  |  N  |  Falsch  |  [Konfiguration der Fehlerbehandlungssteuerungen für Kafka-Ereignisquellen](kafka-retry-configurations.md)  | 
|  FunctionResponseTypes  |  N  |  –  |  [Konfiguration der Fehlerbehandlungssteuerungen für Kafka-Ereignisquellen](kafka-retry-configurations.md)  | 
|  MaximumRecordAgeInSeconds  |  N  |  -1 (unendlich)  |  [Konfiguration der Fehlerbehandlungssteuerungen für Kafka-Ereignisquellen](kafka-retry-configurations.md)  | 
|  MaximumRetryAttempts  |  N  |  -1 (unendlich)  |  [Konfiguration der Fehlerbehandlungssteuerungen für Kafka-Ereignisquellen](kafka-retry-configurations.md)  | 
|  EventSourceArn  |  Y  | – |  Kann nur auf „Erstellen“ festgelegt werden  | 
|  FilterCriteria  |  N  |  –  |  [Steuern Sie, welche Ereignisse Lambda an Ihre Funktion sendet](invocation-eventfiltering.md)  | 
|  FunctionName  |  Y  |  –  |    | 
|  KMSKeyArn  |  N  |  –  |  [Verschlüsselung der Filterkriterien](invocation-eventfiltering.md#filter-criteria-encryption)  | 
|  MaximumBatchingWindowInSeconds  |  N  |  500 ms  |  [Batching-Verhalten](invocation-eventsourcemapping.md#invocation-eventsourcemapping-batching)  | 
|  ProvisionedPollersConfig  |  N  |  `MinimumPollers`: Standardwert von 1, wenn nicht angegeben `MaximumPollers`: Standardwert von 200, wenn nicht angegeben `PollerGroupName`: N/A  |  [Modus bereitgestellter Kapazität](kafka-scaling-modes.md#kafka-provisioned-mode)  | 
|  SourceAccessConfigurations  |  N  |  Keine Anmeldedaten  |  Anmeldeinformationen zur SASL/SCRAM- oder CLIENT\$1CERTIFICATE\$1TLS\$1AUTH (MutualTLS)-Authentifizierung für Ihre Ereignisquelle  | 
|  StartingPosition  |  Y  | – |  AT\$1TIMESTAMP, TRIM\$1HORIZON, oder LATEST Kann nur auf „Erstellen“ festgelegt werden  | 
|  StartingPositionTimestamp  |  N  |  –  |  Erforderlich, wenn es auf StartingPosition AT\$1TIMESTAMP gesetzt ist  | 
|  Tags (Markierungen)  |  N  |  –  |  [Verwendung von Tags für Zuordnungen von Ereignisquellen](tags-esm.md)  | 
|  Topics  |  Y  | – |  Kafka-Thema-Name Kann nur auf „Erstellen“ festgelegt werden  | 

**Anmerkung**  
Wenn Sie a angeben`PollerGroupName`, können sich mehrere ESMs innerhalb derselben Amazon VPC die Kapazität der Event Poller Unit (EPU) teilen. Sie können diese Option verwenden, um die Kosten für den Bereitstellungsmodus für Sie zu optimieren. ESMs Anforderungen für die ESM-Gruppierung:  
ESMs muss sich in derselben Amazon-VPC befinden
Maximal 100 ESMs pro Befragungsgruppe
Die Gesamtzahl der Befragten ESMs in einer Gruppe darf 2000 nicht überschreiten
Sie können den aktualisieren`PollerGroupName`, um einen ESM in eine andere Gruppe zu verschieben, oder einen ESM aus einer Gruppe entfernen, indem Sie ihn `PollerGroupName` auf eine leere Zeichenfolge („“) setzen.