Richiamo di una funzione Lambda in modo sincrono - AWS Lambda

Richiamo di una funzione Lambda in modo sincrono

Diversi Servizi AWS, come Amazon Simple Storage Service (Amazon S3) e Amazon Simple Notification Service (Amazon SNS), chiamano le funzioni in modo asincrono per elaborare gli eventi. Puoi anche richiamare una funzione Lambda in modo asincrono utilizzando la AWS Command Line Interface (AWS CLI) o uno degli SDK AWS. Quando si richiama una funzione in modo asincrono, non si attende una risposta dal codice della funzione. Si passa l'evento a Lambda e Lambda si occupa del resto. È possibile configurare il modo in cui Lambda gestisce gli errori e invia i record di invocazione a una risorsa a valle come Amazon Simple Queue Service (Amazon SQS) o Amazon EventBridge (EventBridge) per concatenare i componenti dell'applicazione.

Il seguente diagramma mostra i client che richiamano una funzione Lambda in modo asincrono. Lambda accoda gli eventi prima di inviarli alla funzione.

I client invocano una funzione in modo asincrono. Lambda accoda gli eventi prima di inviarli alla funzione

Per l'invocazione asincrona, Lambda inserisce l'evento in una coda e restituisce una risposta di esito positivo senza ulteriori informazioni. Un processo separato legge gli eventi dalla coda ed esegue la funzione.

Per richiamare una funzione Lambda in modo asincrono utilizzando la AWS Command Line Interface (AWS CLI) o uno degli SDK AWS, imposta il parametro InvocationType su Event. L'esempio di codice seguente mostra un comando AWS CLI per invocare una funzione.

aws lambda invoke \ --function-name my-function \ --invocation-type Event \ --cli-binary-format raw-in-base64-out \ --payload '{ "key": "value" }' response.json

Verrà visualizzato l'output seguente:

{
    "StatusCode": 202
}

L'opzione cli-binary-format è necessaria se si utilizza la versione 2 della AWS CLI. Per rendere questa impostazione come predefinita, esegui aws configure set cli-binary-format raw-in-base64-out. Per ulteriori informazioni, consulta la pagina AWS CLI supported global command line options nella Guida per l'utente di AWS Command Line Interface versione 2.

Il file di output (response.json) non contiene informazioni, ma è comunque creato quando si esegue il comando. Se Lambda non è in grado di aggiungere l'evento alla coda, il messaggio di errore viene visualizzato nell'output del comando.