

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
<a name="services-kinesis-create"></a>

Per elaborare i record di Amazon Kinesis Data Streams con Lambda, crea una mappatura dell'origine degli eventi Lambda. Puoi mappare una funzione Lambda su un iteratore standard o su un consumer fan-out avanzato. Per ulteriori informazioni, consulta [Flussi di polling e batching](with-kinesis.md#kinesis-polling-and-batching).

## Crea una mappatura della sorgente degli eventi Kinesis
<a name="services-kinesis-eventsourcemapping"></a>

Per richiamare la funzione Lambda con i record dal flusso di dati, crea uno [strumento di mappatura dell'origine degli eventi](invocation-eventsourcemapping.md). È possibile creare più mappature delle origini eventi per elaborare gli stessi dati con più funzioni Lambda o per elaborare elementi da più flussi di dati con una singola 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](#services-kinesis-eventsourcemapping-cross-account).

Prima di creare uno strumento di mappatura dell'origine degli eventi, devi autorizzare la funzione Lambda a leggere da un flusso di dati Kinesis. Lambda richiede le seguenti autorizzazioni per gestire le risorse correlate al flusso di dati Kinesis:
+ [kinesis: DescribeStream ](https://docs.aws.amazon.com/lambda/latest/api/API_DescribeStream.html)
+ [cinesi: DescribeStreamSummary ](https://docs.aws.amazon.com/lambda/latest/api/API_DescribeStreamSummary.html)
+ [cinesi: GetRecords ](https://docs.aws.amazon.com/lambda/latest/api/API_GetRecords.html)
+ [cinesi: GetShardIterator ](https://docs.aws.amazon.com/lambda/latest/api/API_GetShardIterator.html)
+ [cinesi: ListShards ](https://docs.aws.amazon.com/lambda/latest/api/API_ListShards.html)
+ [cinesi: SubscribeToShard ](https://docs.aws.amazon.com/lambda/latest/api/API_SubscribeToShard.html)

La policy AWS gestita [ AWSLambdaKinesisExecutionRole ](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AWSLambdaKinesisExecutionRole.html) include queste autorizzazioni. Aggiungi questa policy gestita alla funzione come descritto nella seguente procedura.

**Nota**  
Non è necessaria l'`kinesis:ListStreams`autorizzazione per creare e gestire le mappature delle sorgenti degli eventi per Kinesis. Tuttavia, se crei una mappatura delle sorgenti di 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 visualizzerà un errore. Per creare la mappatura della sorgente degli eventi, dovrai inserire manualmente l'Amazon Resource Name (ARN) del tuo stream.
Lambda effettua `kinesis:GetRecords` una chiamata `kinesis:GetShardIterator` API quando si riprovano le chiamate non riuscite.

------
#### [ Console di gestione AWS ]

**Per aggiungere le autorizzazioni Kinesis alla tua funzione**

1. Apri la [pagina Funzioni](https://console.aws.amazon.com/lambda/home#/functions) della console Lambda e scegli la tua funzione.

1. Nella scheda **Configurazione** scegli **Autorizzazioni**.

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

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

1. Inserisci **AWSLambdaKinesisExecutionRole** nel campo di ricerca.

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

------
#### [ AWS CLI ]

**Per aggiungere le autorizzazioni Kinesis alla tua funzione**
+ 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 funzione**
+ Nella definizione della funzione, aggiungete 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 Funzioni](https://console.aws.amazon.com/lambda/home#/functions) della console Lambda e scegli la tua funzione.

1. Nel riquadro **Panoramica della funzione**, scegli **Aggiungi trigger**.

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

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

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

1. Scegliere **Aggiungi**.

Quando crei la mappatura della sorgente degli eventi dalla console, il tuo ruolo IAM deve avere le autorizzazioni [ kinesis: ListStreams ](https://docs.aws.amazon.com/lambda/latest/api/API_ListStreams.html) e [ kinesis:. ListStreamConsumers ](https://docs.aws.amazon.com/lambda/latest/api/API_ListStreamConsumers.html)

------
#### [ 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](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/lambda/create-event-source-mapping.html) 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 saperne di più sulla creazione di una mappatura delle sorgenti di eventi per Kinesis Data Streams in AWS SAM, consulta [ Kinesis ](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-kinesis.html) nella Guida per gli sviluppatori. *AWS Serverless Application Model *

------

## Posizioni di partenza di polling e flussi
<a name="services-kinesis-stream-start-pos"></a>

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
<a name="services-kinesis-eventsourcemapping-cross-account"></a>

Flusso di dati Amazon Kinesis supporta le [policy basate sulle risorse](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_identity-vs-resource.html). Per questo motivo, puoi elaborare i dati inseriti in uno stream in uno Account AWS con una funzione Lambda in un altro account.

Per creare una mappatura dell'origine degli eventi per la tua funzione Lambda utilizzando uno stream Kinesis in un altro Account AWS, devi configurare lo stream utilizzando una policy basata sulle risorse per autorizzare la funzione Lambda a leggere gli elementi. Per informazioni su come configurare lo stream per consentire l'accesso con più account, consulta [ Condivisione dell'accesso con funzioni tra account nella guida per sviluppatori di Amazon Kinesis Streams AWS Lambda . ](https://docs.aws.amazon.com/streams/latest/dev/resource-based-policy-examples.html#Resource-based-policy-examples-lambda) * *

Dopo aver configurato lo stream con una policy basata sulle risorse che conferisce alla funzione Lambda le autorizzazioni richieste, crea la mappatura della sorgente 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.