

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

# Best practice per l'implementazione di risposte batch parziali
<a name="best-practices-partial-batch-responses"></a>

Questa sezione fornisce le best practice per la configurazione di risposte batch parziali per le sorgenti di eventi Amazon SQS.
+ Configura una [coda DLQ](https://docs.aws.amazon.com//AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-dead-letter-queues.html) per evitare di creare un anti-modello snowball nell'architettura dell'applicazione serverless. Per ulteriori informazioni, consulta la sezione [Evitare gli anti-modelli snowball](#snowball-anti-patterns).
+ Configura la mappatura dell'origine degli eventi della funzione Lambda per rendere visibili solo i messaggi non riusciti. Per fare ciò, aggiungili **ReportBatchItemFailures**all'**FunctionResponseTypes**elenco quando configuri la mappatura delle sorgenti degli eventi. La funzione Lambda, quando viene richiamata da SQS, dovrebbe implementare risposte batch parziali. Prendi in considerazione l'utilizzo dell'utilità Powertools for AWS Lambda Batch Processing, che elabora i messaggi SQS con il supporto integrato per batch parziali.

## Elaborazione in batch
<a name="batch-processing"></a>
+ Implementa risposte batch parziali nella funzione Lambda richiamata da SQS. Prendi in considerazione l'utilizzo dell'utilità Powertools for AWS Lambda Batch Processing. Questa utilità gestisce l'elaborazione dei messaggi SQS con il supporto integrato per la risposta parziale in batch. *Per ulteriori informazioni, consulta [Segnalazione degli errori degli elementi in batch per le funzioni Lambda con un trigger Amazon SQS](https://docs.aws.amazon.com//lambda/latest/dg/example_serverless_SQS_Lambda_batch_item_failures_section.html) nella Developer Guide.AWS Lambda *

**Utilità Powertools per l'elaborazione AWS Lambda in batch**
+ [Utilità Powertools per l'elaborazione AWS Lambda in batch (Python)](https://docs.aws.amazon.com//powertools/python/latest/utilities/batch/)
+ [Powertools per l'utilità di elaborazione AWS Lambda in batch (Java)](https://docs.aws.amazon.com//powertools/java/latest/utilities/batch/)
+ [Utilità Powertools per l'elaborazione AWS Lambda in batch (.Net)](https://docs.aws.amazon.com//powertools/dotnet/utilities/batch-processing/)
+ [Utilità Powertools per l'elaborazione AWS Lambda in batch () TypeScript](https://docs.aws.amazon.com//powertools/typescript/latest/features/batch/)

## Idempotenza
<a name="idempotency"></a>
+ Stabilisci il numero di volte in cui un messaggio viene consegnato a una coda di origine prima di essere spostato nella coda DLQ. Assicuratevi che il valore definito sia adatto al caso d'uso dell'applicazione identificando le cause più probabili di errore e i relativi tempi di ripristino stimati. Per definire il numero di tentativi, configura il **maxReceiveCount**valore sulla coda di origine. **RedrivePolicy** Per ulteriori informazioni, [SetQueueAttributes](https://docs.aws.amazon.com//AWSSimpleQueueService/latest/APIReference/API_SetQueueAttributes.html)consulta *Amazon SQS API* Reference. Inoltre, consulta [Presentazione del reindirizzamento della coda di lettera morta di Amazon Simple Queue Service](https://aws.amazon.com//blogs/compute/introducing-amazon-simple-queue-service-dead-letter-queue-redrive-to-source-queues/) alle code di origine.
+ Assicurati che il tuo codice Lambda sia idempotente e possa gestire i messaggi più volte. Per implementare l'idempotenza, prendi in considerazione l'utilizzo dell'utilità Powertools for AWS Lambda Idempotency, che prepara il codice di una funzione per supportare singoli lavori all'interno di un batch Amazon SQS. Inizia incorporando la mappatura dei sorgenti degli eventi. **ReportBatchItemFailures** Per ulteriori informazioni, consulta [Implementazione di risposte batch parziali](https://docs.aws.amazon.com//lambda/latest/dg/services-sqs-errorhandling.html#services-sqs-batchfailurereporting) nella *AWS Lambda Developer Guide* e [Come posso impedire a un messaggio Amazon SQS di richiamare la mia funzione Lambda](https://repost.aws/knowledge-center/lambda-function-process-sqs-messages) più di una volta?

**Utilità Powertools for Idempotency AWS Lambda **
+ [AWS Lambda Utilità Powertools per Idempotency (Python)](https://docs.aws.amazon.com//powertools/python/latest/utilities/idempotency/)
+ [Utensili elettrici per Idempotency Utility (Java) AWS Lambda](https://docs.aws.amazon.com//powertools/java/latest/utilities/idempotency/)
+ [Utensili elettrici per AWS Lambda Idempotency Utility (.Net)](https://docs.aws.amazon.com//powertools/dotnet/utilities/idempotency/)
+ [Utensili elettrici per Idempotency Utility () AWS Lambda TypeScript](https://docs.aws.amazon.com//powertools/typescript/latest/features/idempotency/)

## Metriche
<a name="metrics"></a>
+ [Per incorporare metriche aziendali nella vostra funzione per tenere traccia dei dettagli dei lavori e dei lavori non riusciti, prendete in considerazione l'utilizzo **aws-embedded-metrics**della Powertools for AWS Lambda Metrics Utility, che emette metriche operative e aziendali durante l'elaborazione degli eventi SQS in formato metrico integrato.](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch_Embedded_Metric_Format_Libraries.html)

**Utilità Powertools for Metrics AWS Lambda **
+ [Utilità Powertools for AWS Lambda Metrics (Python)](https://docs.aws.amazon.com/powertools/python/latest/core/metrics/)
+ [Powertools for AWS Lambda Metrics Utility (Java)](https://docs.aws.amazon.com/powertools/java/latest/core/metrics/)
+ [Powertools for AWS Lambda Metrics Utility (.Net)](https://docs.aws.amazon.com/powertools/dotnet/core/metrics/)
+ [Powertools for AWS Lambda Metrics Utility () TypeScript](https://docs.aws.amazon.com/powertools/typescript/latest/features/metrics/)
+  Se si utilizza una coda [First-In-First-Out (FIFO)](https://docs.aws.amazon.com/powertools/typescript/latest/features/metrics/), la funzione dovrebbe interrompere l'elaborazione dei messaggi dopo il primo errore e restituire tutti i messaggi non riusciti e non elaborati. **batchItemFailures** Questo aiuta a preservare l'ordine dei messaggi nella coda.

**Nota**  
Per tenere traccia delle prestazioni complessive di un'applicazione che utilizza l'elaborazione in batch parziale, è necessario il monitoraggio delle prestazioni a livello di codice. Dopo la configurazione dell'elaborazione in batch, le chiamate alla funzione Lambda di solito hanno esito positivo indipendentemente dal risultato dell'elaborazione.

## Evitare gli anti-modelli snowball
<a name="snowball-anti-patterns"></a>

Lambda e Amazon SQS non possono controllare i messaggi che i microservizi upstream scrivono in una coda SQS. [Se ci sono messaggi che non possono essere elaborati, Lambda li restituisce alla coda SQS di origine, a meno che non sia configurata una coda di lettere non scritte separata.](https://docs.aws.amazon.com//AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-dead-letter-queues.html) I messaggi non elaborati vengono quindi ritentati dalla funzione Lambda. Se non esiste una coda di lettere non scritte, il numero di messaggi non elaborati restituiti alla coda di Amazon SQS alla fine supera il numero di messaggi validi della coda.

Questo tipo di anti-pattern a *valanga*, in cui ogni chiamata Lambda successiva peggiora il problema, può causare i seguenti problemi:
+ **Esperienza utente scadente** perché l'elaborazione dei lavori richiede più tempo del solito o non vengono elaborati affatto
+ **Aumento dei costi** proporzionale all'aumento esponenziale del numero di messaggi nella coda Amazon SQS e ai nuovi tentativi di elaborazione dei messaggi
+ **Capacità di calcolo Lambda ridotta per l'applicazione o Account AWS** se la funzione non ha limiti alle sue richieste di chiamata

Per evitare di creare un anti-pattern a valanga durante la configurazione di risposte parziali in batch, è consigliabile creare anche una coda di lettere non scritte. Questa coda separata può archiviare i messaggi che non vengono elaborati correttamente e aiutarti a gestire meglio il ciclo di vita dei messaggi non elaborati dell'applicazione.

*Per ulteriori informazioni, consulta [Configurare una coda di lettere non scritte utilizzando la console Amazon SQS nella Amazon SQS Developer](https://docs.aws.amazon.com//AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-configure-dead-letter-queue.html) Guide.*