View a markdown version of this page

Elaborare i record del flusso di dati Amazon Kinesis 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à.

Elaborare i record del flusso di dati Amazon Kinesis con Lambda

Per elaborare i record di Amazon Kinesis Data Streams con Lambda, crea una mappatura delle sorgenti degli eventi Lambda. Puoi mappare una funzione di eventi Lambda a un iteratore standard o a un consumatore fan-out avanzato. Per ulteriori informazioni, consulta Flussi di polling e batching.

Creare una mappatura delle sorgenti degli eventi Kinesis

Per richiamare la tua Lambda Event Function con i record del tuo flusso di dati, crea una mappatura dell'origine degli eventi. Puoi creare più mappature delle origini degli eventi per elaborare gli stessi dati con più funzioni di evento Lambda o per elaborare elementi da più flussi di dati con una sola funzione. Quando si elaborano elementi da più flussi, ogni batch conterrà i record di un solo shard o di un solo flusso.

È possibile configurare gli strumenti di mappatura dell'origine degli eventi per elaborare i record da un flusso in un altro Account AWS. Per ulteriori informazioni, consulta Creazione di uno strumento di mappatura dell'origine degli eventi multi-account.

Prima di creare una mappatura dell'origine degli eventi, devi concedere alla tua Lambda Event Function l'autorizzazione alla lettura da un flusso di dati Kinesis. Lambda richiede le seguenti autorizzazioni per gestire le risorse correlate al flusso di dati Kinesis:

La politica AWS gestita AWSLambdaKinesisExecutionRoleinclude queste autorizzazioni. Aggiungi questa policy gestita alla funzione come descritto nella seguente procedura.

Nota
  • Non è necessaria l'kinesis:ListStreamsautorizzazione per creare e gestire le mappature delle sorgenti degli eventi per Kinesis. Tuttavia, se crei una mappatura dell'origine degli eventi nella console e non disponi di questa autorizzazione, non sarai in grado di selezionare uno stream Kinesis da un elenco a discesa e la console visualizza un errore. Per creare la mappatura delle sorgenti degli eventi, devi inserire manualmente l'Amazon Resource Name (ARN) del tuo stream.

  • Lambda effettua kinesis:GetRecords chiamate kinesis:GetShardIterator API ogni volta che tenta di ripetere le chiamate non riuscite.

Console di gestione AWS
Per aggiungere le autorizzazioni Kinesis alla tua Event Function
  1. Apri la pagina Event Functions della console Lambda e seleziona la tua funzione.

  2. Nella scheda Configurazione scegli Autorizzazioni.

  3. Nel riquadro Ruolo di esecuzione, in Nome ruolo, scegli il link al ruolo di esecuzione della tua funzione. Questo link apre la pagina del ruolo nella console IAM.

  4. Nel riquadro Policy di autorizzazioni, seleziona Aggiungi autorizzazioni, quindi Collega policy.

  5. Inserisci AWSLambdaKinesisExecutionRole nel campo di ricerca.

  6. Seleziona la casella di controllo accanto al nome della policy, quindi scegli Aggiungi autorizzazione.

AWS CLI
Per aggiungere le autorizzazioni Kinesis alla tua Event Function
  • Esegui il seguente comando CLI per aggiungere la AWSLambdaKinesisExecutionRole policy al ruolo di esecuzione della tua funzione:

    aws iam attach-role-policy \ --role-name MyFunctionRole \ --policy-arn arn:aws:iam::aws:policy/service-role/AWSLambdaKinesisExecutionRole
AWS SAM
Per aggiungere le autorizzazioni Kinesis alla tua Event Function
  • Nella definizione della funzione, aggiungi la Policies proprietà come mostrato nell'esempio seguente:

    Resources: MyFunction: Type: AWS::Serverless::Function Properties: CodeUri: ./my-function/ Handler: index.handler Runtime: nodejs24.x Policies: - AWSLambdaKinesisExecutionRole

Dopo aver configurato le autorizzazioni richieste, crea lo strumento di mappatura dell'origine degli eventi.

Console di gestione AWS
Per creare uno strumento di mappatura dell'origine degli eventi Kinesis
  1. Apri la pagina Event Functions della console Lambda e seleziona la tua funzione.

  2. Nel riquadro Panoramica della funzione, scegli Aggiungi trigger.

  3. In Configurazione del trigger, per l'origine seleziona Kinesis.

  4. Seleziona il flusso Kinesis per il quale desideri creare lo strumento di mappatura dell'origine degli eventi e, facoltativamente, un consumer del tuo flusso.

  5. (Facoltativo) Modifica la dimensione del batch, la posizione iniziale e la finestra batch per lo strumento di mappatura dell'origine degli eventi.

  6. Scegliere Aggiungi.

Quando crei la mappatura delle sorgenti degli eventi dalla console, il tuo ruolo IAM deve disporre delle autorizzazioni kinesis: ListStreams e kinesis:. ListStreamConsumers

AWS CLI
Per creare uno strumento di mappatura dell'origine degli eventi Kinesis
  • Per creare uno strumento di mappatura dell'origine degli eventi Kinesis, eseguire il comando della CLI sotto riportato. Scegli la dimensione del batch e la posizione iniziale in base al tuo caso d'uso.

    aws lambda create-event-source-mapping \ --function-name MyFunction \ --event-source-arn arn:aws:kinesis:us-east-2:123456789012:stream/lambda-stream \ --starting-position LATEST \ --batch-size 100

Per specificare una finestra di batch, aggiungi l'opzione --maximum-batching-window-in-seconds. Per ulteriori informazioni sull'utilizzo di questo e di altri parametri, consulta create-event-source-mapping in Riferimento ai comandi della AWS CLI .

AWS SAM
Per creare uno strumento di mappatura dell'origine degli eventi Kinesis
  • Nella definizione della funzione, aggiungete la KinesisEvent proprietà come mostrato nell'esempio seguente:

    Resources: MyFunction: Type: AWS::Serverless::Function Properties: CodeUri: ./my-function/ Handler: index.handler Runtime: nodejs24.x Policies: - AWSLambdaKinesisExecutionRole Events: KinesisEvent: Type: Kinesis Properties: Stream: !GetAtt MyKinesisStream.Arn StartingPosition: LATEST BatchSize: 100 MyKinesisStream: Type: AWS::Kinesis::Stream Properties: ShardCount: 1

Per ulteriori informazioni sulla creazione di una mappatura delle sorgenti di eventi per Kinesis Data Streams in AWS SAM, consulta Kinesis nella Developer Guide.AWS Serverless Application Model

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.

Creazione di uno strumento di mappatura dell'origine degli eventi multi-account

Flusso di dati Amazon Kinesis supporta le policy basate sulle risorse. Per questo motivo, puoi elaborare i dati importati in un flusso in uno Account AWS con una funzione di eventi Lambda in un altro account.

Per creare una mappatura delle sorgenti degli eventi per la tua Lambda Event Function utilizzando un flusso Kinesis in un Account AWS altro, devi configurare il flusso utilizzando una policy basata sulle risorse per concedere alla tua Lambda Event Function l'autorizzazione a leggere gli elementi. Per informazioni su come configurare lo stream per consentire l'accesso su più account, consulta Condivisione dell'accesso con AWS Lambda funzioni su più account nella guida per sviluppatori di Amazon Kinesis Streams.

Dopo aver configurato lo stream con una policy basata sulle risorse che fornisce alla Lambda Event Function le autorizzazioni richieste, crea la mappatura delle sorgenti degli eventi utilizzando uno dei metodi descritti nella sezione precedente.

Se scegli di creare lo strumento di mappatura dell'origine degli eventi utilizzando la console Lambda, incolla l'ARN del tuo flusso direttamente nel campo di input. Se desideri specificare un consumer per il tuo flusso, incollando l'ARN del consumer viene compilato automaticamente il campo del flusso.