Comprensione del comportamento dei tentativi in 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à.

Comprensione del comportamento dei tentativi in Lambda

Quando invochi una funzione esplicitamente, stabilisci la strategia per la gestione degli errori relativi al codice della funzione. Lambda non riprova automaticamente questi tipi di errori per conto dell'utente. Per riprovare, puoi re-invocare manualmente la funzione, inviare l'evento che presenta l'errore a una coda per il debug o ignorare l'errore. Il codice della funzione può essere eseguito completamente, parzialmente o per niente. Se si riprova, accertare che il codice della funzione sia in grado di gestire lo stesso evento più volte senza provocare transazioni duplicate o altri effetti collaterali indesiderati.

Quando si invoca una funzione in modo indiretto, è necessario conoscere il comportamento del nuovo tentativo dell'invoker e qualsiasi servizio che la richiesta incontra. Questo include i seguenti scenari.

  • Invocazione asincrona – Lambda tenta due volte gli errori di funzione. Se la funzione non dispone di capacità sufficiente per gestire tutte le richieste in entrata, gli eventi possono attendere in coda per ore o giorni per essere inviati alla funzione. È possibile configurare una coda DLQ sulla funzione per acquisire eventi che non sono stati elaborati. Per ulteriori informazioni, consulta Come Lambda gestisce le chiamate asincrone.

  • Mappature evento di origine – Le mappature evento di origine che leggono dai flussi effettuano nuovi tentativi sull'intero batch di elementi. Errori ripetuti bloccano l'elaborazione degli shard interessati finché l'errore non viene risolto o gli elementi non scadono. Per rilevare shard in stallo, è possibile monitorare il parametro Età iteratore.

    Per le mappature origine evento che leggono da una coda, stabilire il tempo trascorso tra i nuovi tentativi e la destinazione degli eventi non riusciti configurando il timeout di visibilità e la policy di reindirizzamento sulla coda di origine. Per ulteriori informazioni, consulta In che modo Lambda elabora i record provenienti da fonti di eventi basate su stream e code e gli argomenti specifici del servizio in Richiamare Lambda con eventi di altri servizi AWS.

  • AWS services: i AWS servizi possono richiamare la tua funzione in modo sincrono o asincrono. Per l'invocazione sincrona, il servizio decide se effettuare un nuovo tentativo. Ad esempio, le operazioni batch Amazon S3 ritentano l'operazione se la funzione Lambda restituisce un codice di risposta TemporaryFailure. I servizi che vengono richiesti tramite proxy a un utente o client upstream possono avere una strategia di riprova o inoltrare la risposta all'errore al richiedente. Ad esempio, API Gateway inoltra sempre la risposta di errore al richiedente.

    Per la chiamata asincrona, il comportamento è lo stesso di quando si richiama la funzione in modo sincrono. Per ulteriori informazioni, consulta gli argomenti specifici del servizio in Richiamare Lambda con eventi di altri servizi AWS e l'invocazione della documentazione del servizio.

  • Altri account e client – Quando si concede l'accesso ad altri account, è possibile usare policy basate su risorse per limitare i servizi e le risorse che possono configurare per invocare la funzione. Per proteggere la funzione dal sovraccarico, considerare di inserire un livello API davanti alla funzione con Amazon API Gateway.

Per aiutarti a gestire gli errori nelle applicazioni Lambda, Lambda si integra con servizi come Amazon e. CloudWatch AWS X-Ray Puoi utilizzare una combinazione di log, parametri, allarmi e tracciamento per rilevare e identificare rapidamente problemi relativi a codice della funzione, API e altre risorse che supportano l'applicazione. Per ulteriori informazioni, consulta Monitoraggio e risoluzione dei problemi delle funzioni Lambda.