Seleziona le tue preferenze relative ai cookie

Utilizziamo cookie essenziali e strumenti simili necessari per fornire il nostro sito e i nostri servizi. Utilizziamo i cookie prestazionali per raccogliere statistiche anonime in modo da poter capire come i clienti utilizzano il nostro sito e apportare miglioramenti. I cookie essenziali non possono essere disattivati, ma puoi fare clic su \"Personalizza\" o \"Rifiuta\" per rifiutare i cookie prestazionali.

Se sei d'accordo, AWS e le terze parti approvate utilizzeranno i cookie anche per fornire utili funzionalità del sito, ricordare le tue preferenze e visualizzare contenuti pertinenti, inclusa la pubblicità pertinente. Per continuare senza accettare questi cookie, fai clic su \"Continua\" o \"Rifiuta\". Per effettuare scelte più dettagliate o saperne di più, fai clic su \"Personalizza\".

Elaborazione di messaggi Amazon MSK con Lambda

Modalità Focus
Elaborazione di messaggi Amazon MSK con Lambda - AWS Lambda

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à.

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à.

Aggiunta di Amazon MSK come origine eventi

Per creare una mappatura dell'origine eventi, aggiungi il cluster Amazon MSK come trigger della funzione Lambda utilizzando la console Lambda, un SDK AWS o AWS Command Line Interface (AWS CLI). Tieni presente che quando aggiungi Amazon MSK come trigger, Lambda assume le impostazioni VPC del cluster Amazon MSK, non le impostazioni VPC della funzione Lambda.

Questa sezione descrive come creare una mappatura dell'origine eventi utilizzando la console Lambda e AWS CLI.

Prerequisiti

  • Un cluster Amazon MSK e un argomento Kafka. Per ulteriori informazioni, consulta Nozioni di base per l'uso di Amazon MSK nella Guida per gli sviluppatori di Amazon Managed Streaming for Apache Kafka.

  • Un ruolo di esecuzione con autorizzazione ad accedere alle AWS risorse utilizzate dal cluster MSK.

ID gruppo di consumer personalizzabile

Quando configuri Kafka come origine eventi, puoi specificare un ID gruppo di consumer. Questo ID gruppo di consumer è un identificatore esistente per il gruppo di consumer Kafka a cui desideri che la tua funzione Lambda aderisca. Puoi utilizzare questa funzione per migrare senza problemi qualsiasi configurazione di elaborazione dei record Kafka in corso da altri utenti a Lambda.

Se specifichi l'ID gruppo di consumer e sono presenti altri sondaggi attivi all'interno di quel gruppo di consumer, Kafka distribuisce i messaggi a tutti i consumer. In altre parole, Lambda non riceve tutti i messaggi relativi all'argomento Kafka. Se desideri che Lambda gestisca tutti i messaggi dell'argomento, disattiva tutti gli altri sondaggi in quel gruppo di consumer.

Inoltre, se specifichi un ID gruppo di consumer e Kafka trova un gruppo di consumer esistente valido con lo stesso ID, Lambda ignora il parametro StartingPosition per la mappatura dell'origine eventi. Inizia invece ad elaborare i record in base alla compensazione impegnata del gruppo di consumer. Se specifichi un ID gruppo di consumer e Kafka non riesce a trovare un gruppo di consumer esistente, Lambda configura l'origine eventi con la StartingPosition specificata.

L'ID gruppo di consumer deve essere univoco tra tutte le origini eventi Kafka. Dopo aver creato una mappatura dell'origine eventi Kafka con l'ID gruppo di consumer specificato, non sarà più possibile aggiornare questo valore.

Aggiunta di un trigger Amazon MSK (console)

Segui questi passaggi per aggiungere il cluster Amazon MSK e un argomento Kafka come trigger per la funzione Lambda.

Per aggiungere un trigger Amazon MSK alla funzione Lambda (console)
  1. Aprire la pagina Functions (Funzioni) della console Lambda.

  2. Scegliere il nome della funzione Lambda.

  3. In Panoramica delle funzioni, scegliere Aggiungi trigger.

  4. In Trigger configuration (Configurazione trigger), effettua le operazioni seguenti:

    1. Seleziona il tipo di trigger MSK.

    2. Per MSK cluster (Cluster MSK) seleziona il cluster.

    3. Per Batch Size (Dimensione batch), immettere il numero massimo di messaggi da recuperare in un singolo batch.

    4. Per Batch window (Finestra batch), immetti il tempo massimo in secondi per la raccolta dei registri da parte di Lambda prima di richiamare la funzione.

    5. Per Topic name (Nome argomento) immetti un nome per l'argomento Kafka.

    6. (Facoltativo) Per Consumer group ID (ID gruppo di consumer), inserisci l'ID di un gruppo di consumer Kafka a cui aderire.

    7. (Facoltativo) Per Posizione di inizio, scegli Più recente per iniziare a leggere il flusso dal record più recente, Orizzonte di taglio per iniziare dal primo record disponibile o In corrispondenza del timestamp per specificare un timestamp da cui iniziare la lettura.

    8. (Facoltativo) Per Authentication (Autenticazione), scegli la chiave segreta per l'autenticazione con i broker nel cluster MSK.

    9. Per creare il trigger in uno stato disabilitato per il test (scelta consigliata), deselezionare Enable trigger (Abilita trigger). Oppure, per attivare immediatamente il trigger, selezionareAbilita trigger.

  5. Per creare il trigger, scegli Add (Aggiungi).

Aggiunta di un trigger Amazon MSK (AWS CLI)

Usa i seguenti AWS CLI comandi di esempio per creare e visualizzare un trigger Amazon MSK per la tua funzione Lambda.

Creazione di un trigger utilizzando il AWS CLI

Esempio — Creazione di uno strumento di mappatura dell'origine degli eventi per cluster che utilizzano l'autenticazione IAM

L'esempio seguente utilizza il create-event-source-mapping AWS CLI comando per mappare una funzione Lambda denominata my-kafka-function a un argomento di Kafka denominato. AWSKafkaTopic La posizione iniziale dell'argomento è impostata su LATEST. Quando il cluster utilizza l'autenticazione basata sui ruoli IAM, non è necessario un oggetto. SourceAccessConfiguration Esempio:

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
Esempio — Creazione di uno strumento di mappatura dell'origine degli eventi per cluster che utilizzano l'autenticazione SASL/SCRAM

Se il cluster utilizza l'autenticazione SASL/SCRAM, è necessario includere un SourceAccessConfigurationoggetto che specifica e un ARN segreto di SASL_SCRAM_512_AUTH Secrets Manager.

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"}]'
Esempio — Creazione di uno strumento di mappatura dell'origine degli eventi per cluster che utilizzano l'autenticazione mTLS

Se il cluster utilizza l'autenticazione MTLS, è necessario includere un SourceAccessConfigurationoggetto che specifica CLIENT_CERTIFICATE_TLS_AUTH e un ARN segreto di Secrets Manager.

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"}]'

Per ulteriori informazioni, consulta la documentazione di riferimento dell'CreateEventSourceMappingAPI.

Visualizzazione dello stato utilizzando il AWS CLI

L'esempio seguente utilizza il get-event-source-mapping AWS CLI comando per descrivere lo stato della mappatura dell'origine degli eventi creata.

aws lambda get-event-source-mapping \ --uuid 6d9bce8e-836b-442c-8070-74e77903c815

Parametri di configurazione di Amazon MSK

Tutti i tipi di sorgenti di eventi Lambda condividono le stesse operazioni CreateEventSourceMappinge quelle dell'UpdateEventSourceMappingAPI. Tuttavia, solo alcuni dei parametri si applicano ad Amazon MSK.

Parametro Obbligatorio Predefinito Note

AmazonManagedKafkaEventSourceConfig

N

Contiene il ConsumerGroupId campo, che per impostazione predefinita è un valore univoco.

Può essere impostato solo su Create

BatchSize

N

100

Massimo: 10.000.

DestinationConfig

N

N/D

Acquisizione di batch scartati per un'origine eventi Amazon MSK

Abilitato

N

True

EventSourceArn

Y

N/D

Può essere impostato solo su Create

FilterCriteria

N

N/D

Controllare gli eventi che Lambda invia alla funzione

FunctionName

Y

N/D

KMSKeyArn

N

N/D

Crittografia dei criteri di filtro

MaximumBatchingWindowInSeconds

N

500 ms

Comportamento di batching

ProvisionedPollersConfig

N

MinimumPollers: se non specificato, il valore predefinito è 1

MaximumPollers: se non specificato, il valore predefinito è 200

Configurazione della modalità provisioning

SourceAccessConfigurations

N

Nessuna credenziale

Credenziali di autenticazione SASL/SCRAM o CLIENT_CERTIFICATE_TLS_AUTH (MutualTLS) per la tua origine eventi

StartingPosition

Y

N/D

AT_TIMESTAMP, TRIM_HORIZON o LATEST

Può essere impostato solo su Create

StartingPositionTimestamp

N

N/D

Obbligatorio se StartingPosition è impostato su AT_TIMESTAMP

Tag

N

N/D

Utilizzo di tag negli strumenti di mappatura dell'origine degli eventi

Argomenti

Y

N/D

Nome argomento Kafka

Può essere impostato solo su Create

Creazione di strumenti di mappatura dell'origine degli eventi multi-account

È possibile utilizzare la connettività privata multi-VPC per connettere una funzione Lambda a un cluster MSK assegnato in un altro Account AWS. Utilizza la connettività multi-VPC AWS PrivateLink, che mantiene tutto il traffico all'interno della AWS rete.

Nota

Non è possibile creare strumenti di mappatura dell'origine degli eventi multi-account per i cluster MSK serverless.

Per creare uno strumento di mappatura dell'origine degli eventi multi-account, è necessario innanzitutto configurare la connettività multi-VPC per il cluster MSK. Quando crei lo strumento di mappatura dell'origine degli eventi, utilizza l'ARN della connessione VPC gestita anziché l'ARN del cluster, come illustrato negli esempi seguenti. L'CreateEventSourceMappingoperazione varia anche a seconda del tipo di autenticazione utilizzato dal cluster MSK.

Esempio — Creazione di uno strumento di mappatura dell'origine degli eventi multi-account per cluster che utilizzano l'autenticazione IAM

Quando il cluster utilizza l'autenticazione basata sui ruoli IAM, non è necessario un oggetto. SourceAccessConfiguration Esempio:

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
Esempio — Creazione di uno strumento di mappatura dell'origine degli eventi multi-account per cluster che utilizzano l'autenticazione SASL/SCRAM

Se il cluster utilizza l'autenticazione SASL/SCRAM, è necessario includere un SourceAccessConfigurationoggetto che specifica e un ARN segreto di SASL_SCRAM_512_AUTH Secrets Manager.

Esistono due modi per utilizzare i segreti per lo strumento di mappatura dell'origine degli eventi Amazon MSK multi-account con l'autenticazione SASL/SCRAM:

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"}]'
Esempio — Creazione di uno strumento di mappatura dell'origine degli eventi multi-account per cluster che utilizzano l'autenticazione mTLS

Se il cluster utilizza l'autenticazione MTLS, è necessario includere un SourceAccessConfigurationoggetto che specifica CLIENT_CERTIFICATE_TLS_AUTH e un ARN segreto di Secrets Manager. Il segreto può essere archiviato nell'account del cluster o nell'account della funzione Lambda.

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"}]'

Utilizzo di un cluster Amazon MSK come origine eventi

Quando aggiungi il cluster Apache Kafka o Amazon MSK come trigger per la funzione Lambda, il cluster viene utilizzato come origine eventi.

Lambda legge i dati degli eventi dagli argomenti di Kafka specificati Topics in una CreateEventSourceMappingrichiesta, in base a ciò che specifichi. StartingPosition Dopo che l'elaborazione è avvenuta con successo, l'argomento Kafka viene salvato nel cluster Kafka.

Se specifichi StartingPosition come LATEST, Lambda inizia a leggere a partire dall'ultimo messaggio in ogni partizione appartenente all'argomento. Poiché ci può essere un certo ritardo dopo la configurazione del trigger prima che Lambda inizi a leggere i messaggi, Lambda non legge alcun messaggio prodotto durante questo periodo.

Lambda legge i messaggi in sequenza per ogni partizione dell'argomento Kafka. Un singolo payload Lambda può contenere messaggi provenienti da più partizioni. Quando sono disponibili più record, Lambda continua a elaborare i record in batch, in base al BatchSize valore specificato in una CreateEventSourceMappingrichiesta, finché la funzione non raggiunge l'argomento.

Dopo che Lambda ha elaborato ogni batch, esegue il commit degli offset dei messaggi in quel batch. Se la funzione restituisce un errore per uno qualsiasi dei messaggi di un batch, Lambda ritenta l'intero batch di messaggi fino a quando l'elaborazione non riesce o i messaggi scadono. È possibile inviare i record per i quali tutti i nuovi tentativi falliscono a una destinazione in errore per un'elaborazione successiva.

Nota

Anche se le funzioni Lambda generalmente prevedono un timeout massimo di 15 minuti, gli strumenti di mappatura dell'origine degli eventi per Amazon MSK, Apache Kafka autogestito, Amazon DocumentDB e Amazon MQ per ActiveMQ e RabbitMQ supportano solo funzioni con timeout massimi di 14 minuti. Questa limitazione garantisce che lo strumento di mappatura dell'origine degli eventi possa gestire correttamente errori di funzioni e nuovi tentativi.

Posizioni di partenza di polling e flussi

Tieni presente che il polling dei flussi durante la creazione e gli aggiornamenti dello strumento di mappatura dell’origine degli eventi alla fine è coerente.

  • Durante la creazione dello strumento di mappatura dell'origine degli eventi, potrebbero essere necessari alcuni minuti per l'avvio degli eventi di polling dal flusso.

  • Durante gli aggiornamenti dello strumento di mappatura dell'origine degli eventi, potrebbero essere necessari alcuni minuti per l'avvio degli eventi di polling dal flusso.

Questo comportamento implica che se specifichi LATEST come posizione iniziale del flusso, lo strumento di mappatura dell'origine degli eventi potrebbe perdere eventi durante la creazione o gli aggiornamenti. Per non perdere alcun evento, specifica la posizione iniziale del flusso come TRIM_HORIZON o AT_TIMESTAMP.

CloudWatch Metriche Amazon

Lambda emette il parametro OffsetLag mentre la funzione elabora i registri. Il valore di questo parametro è la differenza di offset tra l'ultimo registro scritto nell'argomento dell'origine eventi Kafka e l'ultimo registro elaborato da Lambda. Puoi utilizzare OffsetLag per stimare la latenza tra il momento in cui un registro viene aggiunto e il momento in cui il gruppo di consumer lo elabora.

Una tendenza in aumento in OffsetLag può indicare problemi con i sondaggi nel gruppo di consumer della funzione. Per ulteriori informazioni, consulta Utilizzo delle CloudWatch metriche con Lambda.

Comportamento di scalabilità del throughput dei messaggi per gli strumenti di mappatura dell'origine degli eventi Amazon MSK

Puoi scegliere tra due modalità di comportamento di dimensionamento del throughput dei messaggi per lo strumento di mappatura dell'origine degli eventi Amazon MSK:

Modalità predefinita (on demand)

Quando si crea inizialmente un'origine eventi Amazon MSK, Lambda assegna un numero predefinito di poller di eventi per elaborare tutte le partizioni dell'argomento Kafka. Lambda aumenta o diminuisce automaticamente il numero di poller di eventi in base al carico di messaggi.

In un intervallo di un minuto, Lambda valuta il ritardo dell'offset di tutte le partizioni dell'argomento. Se il ritardo dell'offset è troppo alto, lo shard sta ricevendo messaggi più velocemente di quanto Lambda possa elaborarli. Se necessario, Lambda aggiunge o rimuove i poller di eventi dall'argomento. Questo processo di dimensionamento automatico di aggiunta o rimozione dei poller degli eventi avviene entro tre minuti dalla valutazione.

Se la funzione Lambda di destinazione è limitata, Lambda riduce il numero di poller di eventi. Questa operazione riduce il carico di lavoro sulla funzione riducendo il numero di messaggi che i poller di eventi possono recuperare e inviare alla funzione.

Configurazione della modalità provisioning

Per i carichi di lavoro in cui è necessario ottimizzare il throughput dello strumento di mappatura dell'origine degli eventi, è possibile utilizzare la modalità provisioning. In modalità provisioning, vengono definiti i limiti minimi e massimi per la quantità di poller di eventi assegnati. Questi poller di eventi con provisioning sono dedicati allo strumento di mappatura dell'origine degli eventi e possono gestire picchi di messaggi imprevisti tramite un dimensionamento automatico reattivo. Ti consigliamo di utilizzare la modalità provisioning per i carichi di lavoro Kafka che hanno requisiti di prestazioni rigorosi.

In Lambda, un event poller è un'unità di calcolo in grado di gestire fino al 5% del throughput. MBps Come riferimento, supponiamo che l'origine eventi produca un payload medio di 1 MB e che la durata media della funzione sia di 1 secondo. Se il payload non subisce alcuna trasformazione (ad esempio il filtraggio), un singolo poller può supportare 5 MBps velocità effettiva e 5 invocazioni Lambda simultanee. L'utilizzo della modalità provisioning comporta costi aggiuntivi. Per le stime dei prezzi, consulta Prezzi di AWS Lambda.

In modalità provisioning, l'intervallo di valori accettati per il numero minimo di poller di event (MinimumPollers) è compreso tra 1 e 200, inclusi. L'intervallo di valori accettati per il numero massimo di poller di eventi (MaximumPollers) è compreso tra 1 e 2.000, inclusi. MaximumPollers deve essere maggiore o uguale a MinimumPollers. Inoltre, per mantenere l'elaborazione ordinata all'interno delle partizioni, Lambda limita a MaximumPollers il numero di partizioni indicato nell'argomento.

Per ulteriori informazioni sulla scelta dei valori minimi e massimi appropriati di poller di eventi, consulta Best practice e considerazioni sull'utilizzo della modalità provisioning.

È possibile configurare la modalità fornita per lo strumento di mappatura dell'origine degli eventi Amazon MSK utilizzando la console o l'API Lambda.

Per configurare la modalità provisioning per uno strumento di mappatura dell'origine degli eventi Amazon MSK esistente (console)
  1. Aprire la pagina Funzioni della console Lambda.

  2. Scegli la funzione con lo strumento di mappatura dell'origine degli eventi Amazon MSK per cui desideri configurare la modalità provisioning.

  3. Scegli la scheda Configurazione, quindi scegli Trigger.

  4. Scegli lo strumento di mappatura dell'origine degli eventi Amazon MSK per cui desideri configurare la modalità provisioning, quindi scegli Modifica.

  5. In Configurazione dello strumento di mappatura dell'origine degli eventi, scegli Configura la modalità provisioning.

    • Per Numero minimo di poller di eventi, inserisci un valore compreso tra 1 e 200. Se non si specifica un valore, Lambda assegna il valore predefinito 1.

    • Per Numero massimo di poller di eventi, inserisci un valore compreso tra 1 e 2.000. Questo valore deve essere maggiore o uguale al valore specificato in Numero minimo di poller di eventi. Se non si specifica un valore, Lambda assegna il valore predefinito 200.

  6. Seleziona Salva.

È possibile configurare la modalità di provisioning a livello di codice utilizzando l'oggetto presente in. ProvisionedPollerConfig EventSourceMappingConfiguration Ad esempio, il seguente comando UpdateEventSourceMappingCLI configura un MinimumPollers valore di 5 e un MaximumPollers valore di 100.

aws lambda update-event-source-mapping \ --uuid a1b2c3d4-5678-90ab-cdef-EXAMPLE11111 \ --provisioned-poller-config '{"MinimumPollers": 5, "MaximumPollers": 100}'

Dopo aver configurato la modalità provisioning, puoi osservare l'utilizzo dei poller di eventi per il tuo carico di lavoro monitorando il parametro ProvisionedPollers. Per ulteriori informazioni, consulta Parametri dello strumento di mappatura dell'origine degli eventi.

Per disabilitare la modalità provisioning e tornare alla modalità predefinita (su richiesta), puoi utilizzare il seguente comando CLI UpdateEventSourceMapping:

aws lambda update-event-source-mapping \ --uuid a1b2c3d4-5678-90ab-cdef-EXAMPLE11111 \ --provisioned-poller-config '{}'

Best practice e considerazioni sull'utilizzo della modalità provisioning

La configurazione ottimale dei poller di eventi minimi e massimi per lo strumento di mappatura dell'origine degli eventi dipende dai requisiti delle prestazioni dell'applicazione. Ti consigliamo di iniziare con i poller di eventi minimi di default per definire il profilo delle prestazioni. Modifica la configurazione in base ai modelli di elaborazione dei messaggi osservati e al profilo delle prestazioni desiderato.

Per carichi di lavoro con picchi di traffico e requisiti delle prestazioni rigorosi, aumenta il numero minimo di poller di eventi per gestire picchi improvvisi di messaggi. Per determinare i poller di eventi minimi richiesti, considera i messaggi al secondo del carico di lavoro e la dimensione media del payload e utilizza la capacità di throughput di un singolo event poller (fino a 5) come riferimento. MBps

Per mantenere l'elaborazione ordinata all'interno di uno shard, Lambda limita il numero massimo di poller di eventi al numero di shard nell'argomento. Inoltre, il numero massimo di poller di eventi a cui lo strumento di mappatura dell'origine degli eventi può scalare dipende dalle impostazioni di simultaneità della funzione.

Quando attivi la modalità provisioned, aggiorna le impostazioni di rete per rimuovere gli endpoint AWS PrivateLink VPC e le autorizzazioni associate.

PrivacyCondizioni del sitoPreferenze cookie
© 2025, Amazon Web Services, Inc. o società affiliate. Tutti i diritti riservati.