Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Risoluzione degli errori di mappatura delle sorgenti degli eventi Kafka
Negli argomenti seguenti vengono forniti suggerimenti per la risoluzione dei problemi relativi a errori e problemi che potrebbero verificarsi durante l'utilizzo di Amazon MSK o Apache Kafka autogestito con Lambda.
Per ulteriori informazioni sulla risoluzione dei problemi, visita il Knowledge Center AWS
Errori di autenticazione e autorizzazione
Se manca una delle autorizzazioni necessarie per consumare i dati dal cluster Kafka, Lambda visualizza uno dei seguenti messaggi di errore nella mappatura delle sorgenti degli eventi sotto. LastProcessingResult
Messaggi di errore
Il cluster non è riuscito ad autorizzare Lambda
Per i SASL/SCRAM nostri MTL, questo errore indica che l'utente fornito non dispone di tutte le seguenti autorizzazioni necessarie per la lista di controllo degli accessi Kafka (ACL):
-
DescribeConfigs Cluster
-
Descrivi il gruppo
-
Leggi il gruppo
-
Descrivi l'argomento
-
Leggi l'argomento
Quando crei Kafka ACLs con le kafka-cluster autorizzazioni richieste, specifica l'argomento e il gruppo come risorse. Il nome dell'argomento deve corrispondere all'argomento nella mappatura dell'origine eventi. Il nome del gruppo deve corrispondere all'UUID della mappatura dell'origine eventi.
Dopo avere aggiunto le autorizzazioni richieste al ruolo di esecuzione, potrebbero essere necessari alcuni minuti affinché le modifiche entrino in vigore.
Di seguito è riportato un esempio di registro ESM a livello di sistema dopo aver abilitato Logging Config per questo problema:
{ "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" } }
Autenticazione SASL non riuscita
Per SASL/SCRAM o SASL/PLAIN, questo errore indica che le credenziali di accesso fornite non sono valide.
Per il controllo degli accessi IAM, al ruolo di esecuzione manca l'kafka-cluster:Connectautorizzazione per il cluster. Aggiungi questa autorizzazione al ruolo e specifica l'Amazon Resource Name (ARN) del cluster come risorsa.
Potresti visualizzare questo errore in modo intermittente. Il cluster rifiuta le connessioni dopo che il numero di connessioni TCP supera la quota di servizio. Lambda cessa e ritenta finché una connessione non ha esito positivo. Dopo che Lambda si connette al cluster e ha eseguito il polling dei registri, l'ultimo risultato di elaborazione cambia in OK.
Di seguito è riportato un esempio di log ESM a livello di sistema dopo aver abilitato Logging Config per questo problema quando si utilizza l'autenticazione IAM:
{ "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" } }
Il server non è riuscito ad autenticare Lambda
Questo errore indica che il broker Kafka non è riuscito ad autenticare Lambda. Questo errore può verificarsi per uno dei seguenti motivi:
Non è stato fornito un certificato client per l'autenticazione mTLS.
È stato fornito un certificato client, ma i broker Kafka non sono configurati per l'utilizzo dell'autenticazione mTLS.
Un certificato client non è attendibile per i broker Kafka.
Lambda non è riuscita ad autenticare il server
Questo errore indica che Lambda non è riuscita ad autenticare il broker Kafka. Questo errore può verificarsi per uno dei seguenti motivi:
Per Apache Kafka autogestito: i broker Kafka utilizzano certificati autofirmati o una CA privata, ma non hanno fornito il certificato CA root del server.
Per Apache Kafka autogestito: il certificato CA principale del server non corrisponde alla CA principale che ha firmato il certificato del broker.
La convalida del nome host non è riuscita perché il certificato del broker non contiene il nome DNS o l'indirizzo IP del broker come nome alternativo dell'oggetto.
Il certificato o la chiave privata forniti non sono validi
Questo errore indica che il consumatore Kafka non ha potuto utilizzare il certificato o la chiave privata fornita. Assicurati che il certificato e la chiave utilizzino il formato PEM e che la crittografia a chiave privata utilizzi un algoritmo. PBES1
Di seguito è riportato un esempio di registro ESM a livello di sistema dopo aver abilitato Logging Config per questo problema:
{ "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" } }
Errori di rete e connettività
I problemi di configurazione della rete possono impedire a Lambda di connettersi al cluster Kafka. I seguenti argomenti descrivono gli errori più comuni relativi alla rete.
Messaggi di errore
Timeout di connessione dovuto alla configurazione del gruppo di sicurezza
Se il gruppo di sicurezza associato al tuo cluster Kafka non consente il traffico in entrata da solo, Lambda non può connettersi al cluster. Assicurati che le regole in entrata del gruppo di sicurezza consentano il traffico proveniente dal gruppo di sicurezza stesso sulle porte del broker Kafka.
Di seguito è riportato un esempio di registro ESM a livello di sistema dopo aver abilitato Logging Config per questo problema:
{ "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" } }
È inoltre possibile controllare il registro Kafka Consumer INFO per verificare la connessione e la configurazione di rete. Il brokerEndpoints campo mostra gli indirizzi del broker Kafka securityProtocol e saslMechanism (se applicabile) mostra il metodo di autenticazione e il networkConfig campo mostra gli indirizzi IP, il blocco CIDR di sottorete e i gruppi di sicurezza utilizzati dalla mappatura delle sorgenti degli eventi. Verifica che i gruppi di sicurezza elencati consentano il traffico in entrata richiesto:
{ "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" ] } } }
Gli endpoint del broker Kafka non possono essere risolti
Questo errore indica che il cluster Kafka non esiste o è stato eliminato. Verifica che il cluster specificato nella mappatura dell'origine degli eventi esista e sia in uno stato attivo.
Di seguito è riportato un esempio di registro ESM a livello di sistema dopo aver abilitato Logging Config per questo problema:
{ "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" } }
Errori della mappatura dell'origine eventi
Quando aggiungi il cluster Apache Kafka come origine eventi per la funzione Lambda, se la funzione rileva un errore, il consumer Kafka arresta l'elaborazione dei record. I consumatori di uno shard dell'argomento sono quelli che sottoscrivono, leggono ed elaborano i record. Gli altri consumatori Kafka possono continuare a elaborare i record, a condizione che non riscontrino lo stesso errore.
Per determinare la causa di un consumatore interrotto, controlla il campo StateTransitionReason nella risposta di EventSourceMapping. Nell'elenco seguente vengono descritti gli errori dell'origine eventi che è possibile ricevere:
ESM_CONFIG_NOT_VALID-
La configurazione della mappatura della fonte evento non è valida.
EVENT_SOURCE_AUTHN_ERROR-
Lambda non ha potuto autenticare la fonte evento.
EVENT_SOURCE_AUTHZ_ERROR-
Lambda non dispone delle autorizzazioni necessarie per accedere alla fonte evento.
FUNCTION_CONFIG_NOT_VALID-
La configurazione della funzione non è valida.
Nota
Se i record degli eventi Lambda superano il limite di dimensione consentito di 6 MB, potrebbero non venire elaborati.