

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.

# Fehlerbehebung bei der Kafka-Zuordnung von Ereignisquellen
<a name="with-kafka-troubleshoot"></a>

Die folgenden Themen enthalten Hinweise zur Fehlerbehebung für Fehler und Probleme, die bei der Verwendung von Amazon MSK oder selbstverwaltetem Apache Kafka mit Lambda auftreten können.

Weitere Hilfe zur Fehlerbehebung finden Sie im [AWS -Wissenszentrum](https://repost.aws/knowledge-center#AWS_Lambda).

## Authentifizierungs- und Autorisierungsfehler
<a name="kafka-permissions-errors"></a>

Wenn eine der für die Nutzung von Daten aus dem Kafka-Cluster erforderlichen Berechtigungen fehlt, zeigt Lambda in der Ereignisquellenzuordnung unter eine der folgenden Fehlermeldungen an. **LastProcessingResult**

**Topics**
+ [Cluster konnte Lambda nicht autorisieren](#kafka-authorize-errors)
+ [SASL-Authentifizierung fehlgeschlagen](#kafka-sasl-errors)
+ [Server konnte Lambda nicht authentifizieren](#kafka-mtls-errors-server)
+ [Lambda konnte Server nicht authentifizieren](#kafka-mtls-errors-lambda)
+ [Bereitgestelltes Zertifikat oder bereitgestellter privater Schlüssel ist ungültig](#kafka-key-errors)

### Cluster konnte Lambda nicht autorisieren
<a name="kafka-authorize-errors"></a>

Bei SASL/SCRAM oder mTLS weist dieser Fehler darauf hin, dass der angegebene Benutzer nicht über alle der folgenden erforderlichen Kafka-Zugriffssteuerungslisten (ACL) -Berechtigungen verfügt:
+ DescribeConfigs Cluster
+ Beschreiben von Gruppe
+ Gruppe lesen
+ Thema beschreiben
+ Thema lesen

Wenn Sie Kafka ACLs mit den erforderlichen `kafka-cluster` Berechtigungen erstellen, geben Sie das Thema und die Gruppe als Ressourcen an. Der Themenname muss mit dem Thema in der Ereignisquellenzuordnung übereinstimmen. Der Gruppenname muss mit der UUID der Ereignisquellenzuordnung übereinstimmen.

Nachdem Sie der Ausführungsrolle die erforderlichen Berechtigungen hinzugefügt haben, kann es einige Minuten dauern, bis die Änderungen wirksam werden.

Im Folgenden finden Sie ein Beispiel für ein ESM-Protokoll auf Systemebene, nachdem [Logging Config für dieses Problem](esm-logging.md) aktiviert wurde:

```
{
    "eventType": "ESM_PROCESSING_EVENT",
    "timestamp": 1734567890123,
    "resourceArn": "arn:aws:lambda:us-east-1:123456789012:event-source-mapping:a1b2c3d4-5678-90ab-cdef-EXAMPLE11111",
    "eventSourceArn": "arn:aws:kafka:us-east-1:123456789012:cluster/my-kafka-cluster/12345678-abcd-1234-efgh-EXAMPLE11111-1",
    "eventProcessorId": "a1b2c3d4-5678-90ab-cdef-EXAMPLE11111/0",
    "logLevel": "WARN",
    "error": {
        "errorMessage": "Not authorized to access topics: [my-topic]",
        "errorCode": "org.apache.kafka.common.errors.TopicAuthorizationException"
    }
}
```

### SASL-Authentifizierung fehlgeschlagen
<a name="kafka-sasl-errors"></a>

Für SASL/SCRAM oder SASL/PLAIN weist dieser Fehler darauf hin, dass die angegebenen Anmeldeinformationen nicht gültig sind.

Zur IAM-Zugriffskontrolle fehlt der Ausführungsrolle die Berechtigung `kafka-cluster:Connect` für den Cluster. Fügen Sie der Rolle diese Berechtigung hinzu und geben Sie den Amazon-Ressourcenname (ARN) des Clusters als Ressource an.

Dieser Fehler wird Ihnen möglicherweise in zeitlichen Abständen angezeigt. Der Cluster lehnt Verbindungen ab, wenn die Anzahl der TCP-Verbindungen das Servicekontingent überschreitet. Lambda zieht sich zurück und versucht es erneut, bis eine Verbindung erfolgreich ist. Nachdem Lambda eine Verbindung zum Cluster hergestellt hat und nach Datensätzen abfragt, ändert sich das letzte Verarbeitungsergebnis zu `OK`.

Im Folgenden finden Sie ein Beispiel für ein ESM-Protokoll auf Systemebene nach der Aktivierung von [Logging Config](esm-logging.md) für dieses Problem bei Verwendung der IAM-Authentifizierung:

```
{
    "eventType": "ESM_PROCESSING_EVENT",
    "timestamp": 1734567890456,
    "resourceArn": "arn:aws:lambda:us-east-1:123456789012:event-source-mapping:a1b2c3d4-5678-90ab-cdef-EXAMPLE22222",
    "eventSourceArn": "arn:aws:kafka:us-east-1:123456789012:cluster/my-kafka-cluster/12345678-abcd-1234-efgh-EXAMPLE22222-1",
    "eventProcessorId": "a1b2c3d4-5678-90ab-cdef-EXAMPLE22222/0",
    "logLevel": "WARN",
    "error": {
        "errorMessage": "[a1b2c3d4-5678-90ab-cdef-EXAMPLE22222]: Access denied",
        "errorCode": "org.apache.kafka.common.errors.SaslAuthenticationException"
    }
}
```

### Server konnte Lambda nicht authentifizieren
<a name="kafka-mtls-errors-server"></a>

Dieser Fehler weist darauf hin, dass der Kafka-Broker Lambda nicht authentifizieren konnte. Dieser Fehler kann aus folgenden Gründen auftreten:
+ Sie haben kein Client-Zertifikat für die mTLS-Authentifizierung bereitgestellt.
+ Sie haben ein Client-Zertifikat bereitgestellt, aber die Kafka-Broker sind nicht für die Verwendung der mTLS-Authentifizierung konfiguriert.
+ Die Kafka-Broker vertrauen einem Client-Zertifikat nicht.

### Lambda konnte Server nicht authentifizieren
<a name="kafka-mtls-errors-lambda"></a>

Dieser Fehler weist darauf hin, dass Lambda den Kafka-Broker nicht authentifizieren konnte. Dieser Fehler kann aus folgenden Gründen auftreten:
+ Für selbstverwaltetes Apache Kafka: Die Kafka-Broker verwenden selbstsignierte Zertifikate oder eine private Zertifizierungsstelle (CA), haben jedoch das Root-CA-Zertifikat des Servers nicht bereitgestellt.
+ Für selbstverwaltetes Apache Kafka: Das Root-CA-Zertifikat des Servers stimmt nicht mit der Root-CA überein, die das Zertifikat des Brokers signiert hat.
+ Die Überprüfung des Hostnamens ist fehlgeschlagen, weil das Zertifikat des Brokers nicht den DNS-Namen oder die IP-Adresse des Brokers als alternativen Betreffnamen enthält.

### Bereitgestelltes Zertifikat oder bereitgestellter privater Schlüssel ist ungültig
<a name="kafka-key-errors"></a>

Dieser Fehler weist darauf hin, dass der Kafka-Konsument das bereitgestellte Zertifikat oder den bereitgestellten privaten Schlüssel nicht verwenden konnte. Stellen Sie sicher, dass das Zertifikat und der Schlüssel das PEM-Format verwenden und dass für die Verschlüsselung des privaten Schlüssels ein Algorithmus verwendet wird. PBES1 

Im Folgenden finden Sie ein Beispiel für ein ESM-Protokoll auf Systemebene, nachdem [Logging Config für dieses Problem](esm-logging.md) aktiviert wurde:

```
{
    "eventType": "ESM_PROCESSING_EVENT",
    "timestamp": 1734567891234,
    "resourceArn": "arn:aws:lambda:us-east-1:123456789012:event-source-mapping:a1b2c3d4-5678-90ab-cdef-EXAMPLE44444",
    "eventSourceArn": "arn:aws:kafka:us-east-1:123456789012:cluster/my-kafka-cluster/12345678-abcd-1234-efgh-EXAMPLE44444-1",
    "eventProcessorId": "a1b2c3d4-5678-90ab-cdef-EXAMPLE44444/0",
    "logLevel": "WARN",
    "error": {
        "errorMessage": "Invalid PEM keystore configs",
        "errorCode": "org.apache.kafka.common.errors.InvalidConfigurationException"
    }
}
```

## Netzwerk- und Verbindungsfehler
<a name="kafka-network-errors"></a>

Probleme mit der Netzwerkkonfiguration können verhindern, dass Lambda eine Verbindung zu Ihrem Kafka-Cluster herstellt. In den folgenden Themen werden häufig auftretende Netzwerkfehler beschrieben.

**Topics**
+ [Verbindungstimeout aufgrund der Konfiguration der Sicherheitsgruppe](#kafka-security-group-errors)
+ [Kafka-Broker-Endpunkte können nicht aufgelöst werden](#kafka-cluster-deleted-errors)

### Verbindungstimeout aufgrund der Konfiguration der Sicherheitsgruppe
<a name="kafka-security-group-errors"></a>

Wenn die mit Ihrem Kafka-Cluster verknüpfte Sicherheitsgruppe keinen eingehenden Datenverkehr von sich selbst zulässt, kann Lambda keine Verbindung zum Cluster herstellen. Stellen Sie sicher, dass die Regeln der Sicherheitsgruppe für eingehenden Datenverkehr von der Sicherheitsgruppe selbst auf den Kafka-Broker-Ports zulassen.

Im Folgenden finden Sie ein Beispiel für ein ESM-Protokoll auf Systemebene, nachdem [Logging Config für dieses Problem](esm-logging.md) aktiviert wurde:

```
{
    "eventType": "ESM_PROCESSING_EVENT",
    "timestamp": 1734567892345,
    "resourceArn": "arn:aws:lambda:us-east-1:123456789012:event-source-mapping:a1b2c3d4-5678-90ab-cdef-EXAMPLE55555",
    "eventSourceArn": "arn:aws:kafka:us-east-1:123456789012:cluster/my-kafka-cluster/12345678-abcd-1234-efgh-EXAMPLE55555-1",
    "eventProcessorId": "a1b2c3d4-5678-90ab-cdef-EXAMPLE55555/0",
    "logLevel": "WARN",
    "error": {
        "errorMessage": "Timeout expired while fetching topic metadata",
        "errorCode": "org.apache.kafka.common.errors.TimeoutException"
    }
}
```

Sie können auch das Kafka-Consumer-INFO-Protokoll überprüfen, um die Verbindung und die Netzwerkkonfiguration zu überprüfen. Das `brokerEndpoints` Feld zeigt die Adressen des Kafka-Brokers `securityProtocol` und `saslMechanism` (falls zutreffend) die Authentifizierungsmethode an, und das `networkConfig` Feld zeigt die IP-Adressen, den Subnetz-CIDR-Block und die Sicherheitsgruppen, die für die Zuordnung der Ereignisquellen verwendet wurden. Stellen Sie sicher, dass die aufgelisteten Sicherheitsgruppen den erforderlichen eingehenden Datenverkehr zulassen:

```
{
    "eventType": "POLLER_STATUS_EVENT",
    "timestamp": 1734567892456,
    "resourceArn": "arn:aws:lambda:us-east-1:123456789012:event-source-mapping:a1b2c3d4-5678-90ab-cdef-11111EXAMPLE",
    "eventSourceArn": "arn:aws:kafka:us-east-1:123456789012:cluster/my-kafka-cluster/a1b2c3d4-5678-90ab-cdef-11111EXAMPLE-1",
    "eventProcessorId": "a1b2c3d4-5678-90ab-cdef-11111EXAMPLE/0",
    "logLevel": "INFO",
    "kafkaEventSourceConnection": {
        "brokerEndpoints": "boot-abcd1234.c2.kafka-serverless.us-east-1.amazonaws.com:9098",
        "consumerId": "a1b2c3d4-5678-90ab-cdef-11111EXAMPLE-0",
        "topics": [
            "my-topic"
        ],
        "consumerGroupId": "a1b2c3d4-5678-90ab-cdef-11111EXAMPLE",
        "securityProtocol": "SASL_SSL",
        "saslMechanism": "AWS_MSK_IAM",
        "totalPartitionCount": 2,
        "assignedPartitionCount": 2,
        "partitionsAssignmentGeneration": 1,
        "assignedPartitions": [
            "my-topic-0",
            "my-topic-1"
        ],
        "networkConfig": {
            "ipAddresses": [
                "10.0.0.37"
            ],
            "subnetCidrBlock": "10.0.0.32/28",
            "securityGroups": [
                "sg-0123456789abcdef0"
            ]
        }
    }
}
```

### Kafka-Broker-Endpunkte können nicht aufgelöst werden
<a name="kafka-cluster-deleted-errors"></a>

Dieser Fehler weist darauf hin, dass der Kafka-Cluster nicht existiert oder gelöscht wurde. Stellen Sie sicher, dass der in der Ereignisquellenzuordnung angegebene Cluster vorhanden ist und sich in einem aktiven Zustand befindet.

Im Folgenden finden Sie ein Beispiel für ein ESM-Protokoll auf Systemebene, nachdem [Logging Config für dieses Problem](esm-logging.md) aktiviert wurde:

```
{
    "eventType": "ESM_PROCESSING_EVENT",
    "timestamp": 1734567893456,
    "resourceArn": "arn:aws:lambda:us-east-1:123456789012:event-source-mapping:a1b2c3d4-5678-90ab-cdef-EXAMPLE66666",
    "eventSourceArn": "arn:aws:kafka:us-east-1:123456789012:cluster/my-kafka-cluster/12345678-abcd-1234-efgh-EXAMPLE66666-1",
    "eventProcessorId": "a1b2c3d4-5678-90ab-cdef-EXAMPLE66666/0",
    "logLevel": "WARN",
    "error": {
        "errorMessage": "No resolvable bootstrap urls given in bootstrap.servers",
        "errorCode": "org.apache.kafka.common.config.ConfigException"
    }
}
```

## Fehler bei der Ereignisquellen-Zuweisung
<a name="services-event-errors"></a>

Wenn Sie Ihren Apache-Kafka-Cluster als [Ereignisquelle](invocation-eventsourcemapping.md) für Ihre Lambda-Funktion hinzufügen und Ihre Funktion auf einen Fehler stößt, beendet Ihr Kafka-Verbraucher die Verarbeitung von Datensätzen. Verbraucher einer Themenpartition sind diejenigen, die Ihre Datensätze abonnieren, lesen und verarbeiten. Ihre anderen Kafka-Verbraucher können weiterhin Datensätze verarbeiten, sofern sie nicht auf denselben Fehler stoßen.

Um die Ursache eines gestoppten Verbrauchers zu ermitteln, überprüfen Sie das `StateTransitionReason`-Feld in der Antwort von `EventSourceMapping`. In der folgenden Liste werden die Ereignisquellfehler beschrieben, die Sie erhalten können:

**`ESM_CONFIG_NOT_VALID`**  
Die Konfiguration der Ereignisquellenzuordnung ist ungültig.

**`EVENT_SOURCE_AUTHN_ERROR`**  
Lambda konnte die Ereignisquelle nicht authentifizieren.

**`EVENT_SOURCE_AUTHZ_ERROR`**  
Lambda verfügt nicht über die erforderlichen Berechtigungen für den Zugriff auf die Ereignisquelle.

**`FUNCTION_CONFIG_NOT_VALID`**  
Die Konfiguration der Funktion ist ungültig.

**Anmerkung**  
Wenn Ihre Lambda-Ereignisdatensätze die zulässige Größenbeschränkung von 6 MB überschreiten, können sie unbearbeitet bleiben.