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à.
Utilizzo del runtime Lambda API per runtime personalizzati
AWS Lambda fornisce un runtime personalizzato HTTP API per ricevere eventi di chiamata da Lambda e inviare i dati di risposta all'interno dell'ambiente di esecuzione Lambda. Questa sezione contiene il API riferimento per il runtime Lambda. API
La API specifica Open per la API versione runtime 2018-06-01 è disponibile in runtime-api.zip
Per creare una API richiestaURL, i runtime ottengono l'APIendpoint dalla variabile di AWS_LAMBDA_RUNTIME_API
ambiente, aggiungono la API versione e aggiungono il percorso di risorsa desiderato.
Esempio Richiesta
curl "http://${AWS_LAMBDA_RUNTIME_API}/2018-06-01/runtime/invocation/next"
Chiamata successiva
Percorso – /runtime/invocation/next
Metodo — GET
Il runtime invia questo messaggio a Lambda per richiedere un evento di chiamata. Il corpo della risposta contiene il payload dell'invocazione, che è un JSON documento che contiene i dati degli eventi provenienti dal trigger della funzione. Le intestazioni della risposta contengono dati aggiuntivi sulla chiamata.
Intestazioni di risposta
-
Lambda-Runtime-Aws-Request-Id
– L'ID della richiesta che identifica la richiesta che ha attivato la chiamata della funzione.Ad esempio
8476a536-e9f4-11e8-9739-2dfe598c3fcd
. -
Lambda-Runtime-Deadline-Ms
– La data del timeout della funzione in millisecondi Unix.Ad esempio
1542409706888
. -
Lambda-Runtime-Invoked-Function-Arn
— La ARN funzione, la versione o l'alias Lambda specificata nella chiamata.Ad esempio
arn:aws:lambda:us-east-2:123456789012:function:custom-runtime
. -
Lambda-Runtime-Trace-Id
– L'intestazione di tracciamento AWS X-Ray.Ad esempio
Root=1-5bef4de7-ad49b0e87f6ef6c87fc2e700;Parent=9a9197af755a6419;Sampled=1
. -
Lambda-Runtime-Client-Context
— Per le chiamate dal AWS dispositivo mobileSDK, dati sull'applicazione client e sul dispositivo. -
Lambda-Runtime-Cognito-Identity
— Per le chiamate dal AWS dispositivo mobileSDK, dati sul provider di identità Amazon Cognito.
Non impostare un timeout sulla richiesta GET
in quanto la risposta potrebbe essere ritardata. Nell'intervallo di tempo che va dal bootstrap del runtime di Lambda al momento in cui il runtime dispone di un evento da restituire, il processo di runtime potrebbe rimanere bloccato per alcuni secondi.
L'ID della richiesta tiene traccia della chiamata in Lambda. Utilizzalo per specificare la chiamata quando invii la risposta.
L'intestazione di traccia contiene l'ID di traccia, l'ID dell'elemento padre e la selezione per il campionamento. Se la richiesta viene campionata, la richiesta è stata campionata da Lambda o da un servizio upstream. Il runtime deve impostare _X_AMZN_TRACE_ID
sul valore dell'intestazione. L'X-Ray lo SDK legge per ottenere IDs e determinare se tracciare la richiesta.
Risposta all'invocazione
Percorso – /runtime/invocation/
AwsRequestId
/response
Metodo — POST
Una volta che la funzione è stata eseguita fino al completamento, il runtime invia una risposta di chiamata a Lambda. Per le chiamate sincrone, Lambda invia la risposta al client.
Esempio Richiesta con esito positivo
REQUEST_ID=156cb537-e2d4-11e8-9b34-d36013741fb9 curl "http://${AWS_LAMBDA_RUNTIME_API}/2018-06-01/runtime/invocation/$REQUEST_ID/response" -d "SUCCESS"
Errore di inizializzazione
Se la funzione restituisce un errore o il runtime rileva un errore durante l'inizializzazione, il runtime utilizzerà questo metodo per segnalare l'errore a Lambda.
Percorso – /runtime/init/error
Metodo — POST
Headers
Lambda-Runtime-Function-Error-Type
– Tipo di errore rilevato dal tempo di esecuzione. Campo obbligatorio: no.
L'intestazione è costituita da un valore stringa. Lambda accetta qualsiasi stringa, ma si consiglia di utilizzare il formato <categoria.motivo>. Per esempio:
Runtime. NoSuchHandler
Runtime. APIKeyNotFound
Runtime. ConfigInvalid
Runtime. UnknownReason
Parametri corpo
ErrorRequest
– Informazioni sull'errore. Campo obbligatorio: no.
Questo campo è un JSON oggetto con la seguente struttura:
{ errorMessage: string (text description of the error), errorType: string, stackTrace: array of strings }
NB: Lambda accetta qualsiasi valore per errorType
.
Nell'esempio seguente viene mostrato un messaggio di errore della funzione Lambda in cui la funzione non è stata in grado di analizzare i dati evento forniti nell'invocazione.
Esempio Errore di funzione
{ "errorMessage" : "Error parsing event data.", "errorType" : "InvalidEventDataException", "stackTrace": [ ] }
Parametri del corpo della risposta
StatusResponse
– Stringa. Informazioni sullo stato, inviate con codici di risposta 202.ErrorResponse
– Ulteriori informazioni sull'errore, inviate con i codici di risposta agli errori. ErrorResponse contiene un tipo di errore e un messaggio di errore.
Codice di risposta
-
202 – Accettato
-
403 – Non consentito
-
500 – Errore del container. Stato non recuperabile. Il tempo di esecuzione dovrebbe uscire tempestivamente.
Esempio Richiesta con errore di inizializzazione
ERROR="{\"errorMessage\" : \"Failed to load function.\", \"errorType\" : \"InvalidFunctionException\"}" curl "http://${AWS_LAMBDA_RUNTIME_API}/2018-06-01/runtime/init/error" -d "$ERROR" --header "Lambda-Runtime-Function-Error-Type: Unhandled"
Errore della chiamata
Se la funzione restituisce un errore o il runtime rileva un errore, il runtime utilizzerà questo metodo per segnalare l'errore a Lambda.
Percorso – /runtime/invocation/
AwsRequestId
/error
Metodo — POST
Headers
Lambda-Runtime-Function-Error-Type
– Tipo di errore rilevato dal tempo di esecuzione. Campo obbligatorio: no.
L'intestazione è costituita da un valore stringa. Lambda accetta qualsiasi stringa, ma si consiglia di utilizzare il formato <categoria.motivo>. Per esempio:
Runtime. NoSuchHandler
Runtime. APIKeyNotFound
Runtime. ConfigInvalid
Runtime. UnknownReason
Parametri corpo
ErrorRequest
– Informazioni sull'errore. Campo obbligatorio: no.
Questo campo è un JSON oggetto con la seguente struttura:
{ errorMessage: string (text description of the error), errorType: string, stackTrace: array of strings }
NB: Lambda accetta qualsiasi valore per errorType
.
Nell'esempio seguente viene mostrato un messaggio di errore della funzione Lambda in cui la funzione non è stata in grado di analizzare i dati evento forniti nell'invocazione.
Esempio Errore di funzione
{ "errorMessage" : "Error parsing event data.", "errorType" : "InvalidEventDataException", "stackTrace": [ ] }
Parametri del corpo della risposta
StatusResponse
– Stringa. Informazioni sullo stato, inviate con codici di risposta 202.ErrorResponse
– Ulteriori informazioni sull'errore, inviate con i codici di risposta agli errori. ErrorResponse contiene un tipo di errore e un messaggio di errore.
Codice di risposta
-
202 – Accettato
-
400 – Richiesta non valida
-
403 – Non consentito
-
500 – Errore del container. Stato non recuperabile. Il tempo di esecuzione dovrebbe uscire tempestivamente.
Esempio Richiesta con esito errato
REQUEST_ID=156cb537-e2d4-11e8-9b34-d36013741fb9 ERROR="{\"errorMessage\" : \"Error parsing event data.\", \"errorType\" : \"InvalidEventDataException\"}" curl "http://${AWS_LAMBDA_RUNTIME_API}/2018-06-01/runtime/invocation/$REQUEST_ID/error" -d "$ERROR" --header "Lambda-Runtime-Function-Error-Type: Unhandled"