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à.
Invoke
Richiama una funzione Lambda. È possibile richiamare una funzione in modo sincrono (e attendere la risposta) o asincrono. Per impostazione predefinita, Lambda richiama la funzione in modo sincrono (ad esempio, InvocationType
è RequestResponse
). Per richiamare una funzione in modo asincrono, impostare InvocationType
su Event
. Lambda invia l'oggetto ClientContext
alla funzione solo per chiamate sincrone.
Per l'invocazione sincrona, i dettagli sulla risposta della funzione, compresi gli errori, sono inclusi nel corpo e nelle intestazioni della risposta. Per entrambi i tipi di invocazione, sono disponibili ulteriori informazioni nel log di esecuzione e nella traccia.
Quando si verifica un errore, la funzione può essere richiamata più volte. Il comportamento dei tentativi varia in base al tipo di errore, al client, all'origine evento e al tipo di invocazione. Ad esempio, se richiami una funzione in modo asincrono e questa restituisce un errore, Lambda esegue la funzione fino ad altre due volte al massimo. Per ulteriori informazioni, consulta Gestione di errori e tentativi automatici in Lambda.
Per l'invocazione asincrona, Lambda aggiunge eventi a una coda prima di inviarli alla funzione. Se la funzione non dispone di capacità sufficiente per tenere il passo con la coda, gli eventi potrebbero andare persi. Talvolta la funzione può ricevere lo stesso evento più volte, anche se non si verifica alcun errore. Per mantenere gli eventi che non sono stati elaborati, configurare la funzione con una coda DLQ (coda di messaggi non instradabili).
Il codice di stato della risposta API non riflette gli errori della funzione. I codici di errore sono riservati agli errori che impediscono l'esecuzione della funzione, ad esempio gli errori relativi alle autorizzazioni, gli errori relativi alle quote o i problemi relativi al codice e alla configurazione della funzione. Ad esempio, Lambda restituisce TooManyRequestsException
se l'esecuzione della funzione provoca il superamento di un limite di simultaneità a livello di account (ConcurrentInvocationLimitExceeded
) o a livello di funzione (ReservedFunctionConcurrentInvocationLimitExceeded
).
Per le funzioni con un lungo timeout, il client potrebbe essere scollegato durante la chiamata sincrona mentre è in attesa della risposta. Configurare il client HTTP, l'SDK, il firewall o il sistema operativo per consentire le connessioni lunghe con timeout o le impostazioni keep-alive.
Questa operazione richiede l'autorizzazione per l'InvokeFunctionazione lambda:. Per ulteriori informazioni su come configurare le autorizzazioni per le chiamate tra account, consulta Concessione dell'accesso alle funzioni ad altri account.
Sintassi della richiesta
POST /2015-03-31/functions/FunctionName
/invocations?Qualifier=Qualifier
HTTP/1.1
X-Amz-Invocation-Type: InvocationType
X-Amz-Log-Type: LogType
X-Amz-Client-Context: ClientContext
Payload
Parametri della richiesta URI
La richiesta utilizza i seguenti parametri URI.
- ClientContext
-
Fino a 3.583 byte di dati codificati in base64 sul client dell'invocazione da passare alla funzione nell'oggetto contesto. Lambda invia l'oggetto
ClientContext
alla funzione solo per chiamate sincrone. - FunctionName
-
Il nome, la versione o l'alias della funzione Lambda.
Formati di nome
-
Nome della funzione:
my-function
(solo nome),my-function:v1
(con alias). -
ARN funzione:
arn:aws:lambda:us-west-2:123456789012:function:my-function
. -
ARN parziale:
123456789012:function:my-function
.
Puoi aggiungere un numero di versione o un alias a qualsiasi formato. Il vincolo di lunghezza si applica solo all'ARN completo. Se specifichi solo il nome della funzione, questo avrà un limite di lunghezza di 64 caratteri.
Limitazioni di lunghezza: lunghezza minima di 1. Lunghezza massima di 170.
Modello:
(arn:(aws[a-zA-Z-]*)?:lambda:)?([a-z]{2}(-gov)?-[a-z]+-\d{1}:)?(\d{12}:)?(function:)?([a-zA-Z0-9-_\.]+)(:(\$LATEST|[a-zA-Z0-9-_]+))?
Campo obbligatorio: sì
-
- InvocationType
-
Scegliere tra le seguenti opzioni.
-
RequestResponse
(predefinito): richiama la funzione in modo sincrono. Tiene la connessione aperta fino a quando la funzione non restituisce una risposta o un timeout. La risposta API include la risposta della funzione e dati aggiuntivi. -
Event
: richiama la funzione in modo asincrono. Invia eventi che non riescono più volte alla coda DLQ della funzione (se è configurata). La risposta API include solo un codice di stato. -
DryRun
: convalida i valori dei parametri e verifica che l'utente o il ruolo disponga dell'autorizzazione per richiamare la funzione.
Valori validi:
Event | RequestResponse | DryRun
-
- LogType
-
Impostare su
Tail
per includere il log di esecuzione nella risposta. Si applica solo alle funzioni richiamate in modo sincrono.Valori validi:
None | Tail
- Qualifier
-
Specifica una versione o un alias per richiamare una versione pubblicata della funzione.
Limitazioni di lunghezza: lunghezza minima di 1. La lunghezza massima è 128 caratteri.
Modello:
(|[a-zA-Z0-9$_-]+)
Corpo della richiesta
La richiesta accetta i seguenti dati binari.
- Payload
-
Il codice JSON che vuoi fornire come input alla funzione Lambda.
È possibile inserire direttamente il JSON. Ad esempio,
--payload '{ "key": "value" }'
. Puoi inoltre specificare un percorso file. Ad esempio,--payload file://payload.json
.
Sintassi della risposta
HTTP/1.1 StatusCode
X-Amz-Function-Error: FunctionError
X-Amz-Log-Result: LogResult
X-Amz-Executed-Version: ExecutedVersion
Payload
Elementi di risposta
Se l'operazione riesce, il servizio restituisce la seguente risposta HTTP.
- StatusCode
-
Per una richiesta riuscita, il codice di stato HTTP è compreso nell'intervallo 200. Per il tipo di invocazione
RequestResponse
, questo codice di stato è 200. Per il tipo di invocazioneEvent
, questo codice di stato è 202. Per il tipo di invocazioneDryRun
, il codice di stato è 204.
La risposta restituisce le seguenti intestazioni HTTP.
- ExecutedVersion
-
La versione della funzione eseguita. Quando si richiama una funzione con un alias, indica a quale versione è stato risolto l'alias.
Limitazioni di lunghezza: lunghezza minima di 1. La lunghezza massima è 1024 caratteri.
Modello:
(\$LATEST|[0-9]+)
- FunctionError
-
Se presente, indica che si è verificato un errore durante l'esecuzione della funzione. I dettagli sull'errore sono inclusi nel payload di risposta.
- LogResult
-
Gli ultimi 4 KB del log di esecuzione, che è codificato in base64.
La risposta restituisce quanto segue come corpo HTTP.
- Payload
-
Risposta della funzione o oggetto di errore.
Errori
Per informazioni sugli errori comuni a tutte le operazioni, consultare Errori comuni.
- EC2AccessDeniedException
-
Sono necessarie autorizzazioni aggiuntive per configurare le impostazioni VPC.
Codice di stato HTTP: 502
- EC2ThrottledException
-
Amazon EC2 ha limitato AWS Lambda durante l'inizializzazione della funzione Lambda tramite il ruolo di esecuzione fornito per la funzione.
Codice di stato HTTP: 502
- EC2UnexpectedException
-
AWS Lambda ha ricevuto un'eccezione client Amazon EC2 imprevista durante la configurazione della funzione Lambda.
Codice di stato HTTP: 502
- EFSIOException
-
Si è verificato un errore durante la lettura o la scrittura su un file system connesso.
Codice di stato HTTP: 410
- EFSMountConnectivityException
-
La funzione Lambda non è riuscita a stabilire una connessione di rete al file system configurato.
Codice di stato HTTP: 408
- EFSMountFailureException
-
La funzione Lambda non è riuscita a montare il file system configurato a causa di un problema di autorizzazione o di configurazione.
Codice di stato HTTP: 403
- EFSMountTimeoutException
-
La funzione Lambda ha stabilito una connessione di rete al file system configurato, ma l'operazione di montaggio è scaduta.
Codice di stato HTTP: 408
- ENILimitReachedException
-
AWS Lambda non ha creato un'interfaccia di rete elastica nel VPC, specificata come parte della configurazione della funzione Lambda, perché è stato raggiunto il limite per le interfacce di rete. Per ulteriori informazioni, consulta la pagina relativa alle quote di .
Codice di stato HTTP: 502
- InvalidParameterValueException
-
Uno dei parametri della richiesta non è valido.
Codice di stato HTTP: 400
- InvalidRequestContentException
-
Impossibile analizzare il corpo della richiesta come JSON.
Codice di stato HTTP: 400
- InvalidRuntimeException
-
Il runtime o la versione di runtime specificata non sono supportati.
Codice di stato HTTP: 502
- InvalidSecurityGroupIDException
-
L'ID del gruppo di sicurezza fornito nella configurazione VPC della funzione Lambda non è valido.
Codice di stato HTTP: 502
- InvalidSubnetIDException
-
L'ID della sottorete fornito nella configurazione VPC della funzione Lambda non è valido.
Codice di stato HTTP: 502
- InvalidZipFileException
-
AWS Lambda non è riuscito a decomprimere il pacchetto di distribuzione.
Codice di stato HTTP: 502
- KMSAccessDeniedException
-
Lambda non è riuscito a decrittare le variabili d'ambiente perché l'accesso a AWS KMS è stato negato. Controlla le autorizzazioni KMS della funzione Lambda.
Codice di stato HTTP: 502
- KMSDisabledException
-
Lambda non è riuscito a decrittare le variabili d'ambiente perché la AWS KMS key utilizzata è disabilitata. Controlla le impostazioni delle chiavi KMS della funzione Lambda.
Codice di stato HTTP: 502
- KMSInvalidStateException
-
Lambda non è riuscito a decrittare le variabili di ambiente perché lo stato della AWS KMS key utilizzata è non valido per Decrypt (Decritta). Controlla le impostazioni delle chiavi KMS della funzione.
Codice di stato HTTP: 502
- KMSNotFoundException
-
Lambda non è riuscito a decrittare le variabili d'ambiente perché la AWS KMS key non è stata trovata. Controlla le impostazioni delle chiavi KMS della funzione.
Codice di stato HTTP: 502
- RecursiveInvocationException
-
Lambda ha rilevato che la funzione viene richiamata in un ciclo ricorsivo con altre risorse AWS e ha interrotto l'invocazione della funzione.
Codice di stato HTTP: 400
- RequestTooLargeException
-
Il payload della richiesta ha superato la quota di immissione JSON del corpo della richiesta
Invoke
. Per ulteriori informazioni, consulta la pagina relativa alle quote di .Codice di stato HTTP: 413
- ResourceConflictException
-
La risorsa esiste già o è in corso un'altra operazione.
Codice di stato HTTP: 409
- ResourceNotFoundException
-
La risorsa specificata nella richiesta non esiste.
Codice di stato HTTP: 404
- ResourceNotReadyException
-
La funzione è inattiva e la sua connessione VPC non è più disponibile. Attendi il ripristino della connessione VPC e riprova.
Codice di stato HTTP: 502
- ServiceException
-
Il servizio AWS Lambda ha riscontrato un errore interno.
Codice di stato HTTP: 500
- SnapStartException
-
L'hook di runtime di
afterRestore()
ha riscontrato un errore. Per ulteriori informazioni, consulta i CloudWatch log di Amazon.Codice di stato HTTP: 400
- SnapStartNotReadyException
-
Lambda sta inizializzando la tua funzione. È possibile richiamare la funzione quando lo stato della funzione diventa
Active
.Codice di stato HTTP: 409
- SnapStartTimeoutException
-
Lambda non è riuscita a ripristinare lo snapshot entro il limite di timeout.
Codice di stato HTTP: 408
- SubnetIPAddressLimitReachedException
-
AWS Lambda non è riuscito a configurare l'accesso VPC per la funzione Lambda perché una o più sottoreti configurate non hanno indirizzi IP disponibili.
Codice di stato HTTP: 502
- TooManyRequestsException
-
È stato superato il limite di throughput della richiesta. Per ulteriori informazioni, consulta la pagina relativa alle quote di .
Codice di stato HTTP: 429
- UnsupportedMediaTypeException
-
Il tipo di contenuto del corpo della richiesta
Invoke
non è JSON.Codice di stato HTTP: 415
Vedi anche
Per ulteriori informazioni sull'utilizzo di questa API in uno degli SDK AWS specifici della lingua, consulta quanto segue: