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 dell'oggetto contestuale Lambda per recuperare informazioni sulla funzione Java
Quando Lambda esegue la funzione, passa un oggetto Context al gestore. Questo oggetto fornisce i metodi e le proprietà che forniscono le informazioni sulla chiamata, sulla funzione e sull'ambiente di esecuzione.
Metodi del contesto
-
getRemainingTimeInMillis()
: restituisce il numero di millisecondi rimasti prima del timeout dell'esecuzione. -
getFunctionName()
: restituisce il nome della funzione Lambda. -
getFunctionVersion()
: restituisce la versione della funzione. -
getInvokedFunctionArn()
— Restituisce l'Amazon Resource Name (ARN) utilizzato per richiamare la funzione. Indica se l'invoker ha specificato un numero di versione o un alias. -
getMemoryLimitInMB()
: restituisce la quantità di memoria allocata per la funzione. -
getAwsRequestId()
: restituisce l'identificatore della richiesta di invocazione. -
getLogGroupName()
: restituisce il gruppo di log per la funzione. -
getLogStreamName()
: restituisce il flusso di log per l'istanza della funzione. -
getIdentity()
: (app per dispositivi mobili) restituisce informazioni relative all'identità Amazon Cognito che ha autorizzato la richiesta. -
getClientContext()
: (app per dispositivi mobili) restituisce il contesto client fornito a Lambda dall'applicazione client. -
getLogger()
: restituisce l'oggetto logger per la funzione.
Nell'esempio seguente viene illustrata una funzione che utilizza l'oggetto contesto per accedere al logger Lambda.
Esempio Handler.java
package example; import com.amazonaws.services.lambda.runtime.Context; import com.amazonaws.services.lambda.runtime.LambdaLogger; import com.amazonaws.services.lambda.runtime.RequestHandler; import java.util.Map; // Handler value: example.Handler public class Handler implements RequestHandler<Map<String,String>, Void>{ @Override public Void handleRequest(Map<String,String> event, Context context) {
LambdaLogger logger = context.getLogger();
logger.log("EVENT TYPE: " + event.getClass()); return null; } }
La funzione registra il tipo di classe dell'evento in arrivo prima che venga restituito. null
Esempio Output log
EVENT TYPE: class java.util.LinkedHashMap
L'interfaccia per l'oggetto context è disponibile nella aws-lambda-java-core
Esempio src/test/java/example/ .java TestContext
package example; import com.amazonaws.services.lambda.runtime.Context; import com.amazonaws.services.lambda.runtime.CognitoIdentity; import com.amazonaws.services.lambda.runtime.ClientContext; import com.amazonaws.services.lambda.runtime.LambdaLogger; public class TestContext implements Context{ public TestContext() {} public String getAwsRequestId(){ return new String("495b12a8-xmpl-4eca-8168-160484189f99"); } public String getLogGroupName(){ return new String("/aws/lambda/my-function"); } public String getLogStreamName(){ return new String("2020/02/26/[$LATEST]704f8dxmpla04097b9134246b8438f1a"); } public String getFunctionName(){ return new String("my-function"); } public String getFunctionVersion(){ return new String("$LATEST"); } public String getInvokedFunctionArn(){ return new String("arn:aws:lambda:us-east-2:123456789012:function:my-function"); } public CognitoIdentity getIdentity(){ return null; } public ClientContext getClientContext(){ return null; } public int getRemainingTimeInMillis(){ return 300000; } public int getMemoryLimitInMB(){ return 512; } public LambdaLogger getLogger(){ return new TestLogger(); } }
Per ulteriori informazioni sulla registrazione, consulta Registra e monitora le funzioni Java Lambda.
Contesto nelle applicazioni di esempio
L' GitHub archivio di questa guida include applicazioni di esempio che dimostrano l'uso dell'oggetto context. Ogni applicazione di esempio include script per facilitare la distribuzione e la pulizia, un modello AWS Serverless Application Model (AWS SAM) e risorse di supporto.
Applicazioni Lambda di esempio in Java
-
java17-examples
: una funzione Java che dimostra come utilizzare un record Java per rappresentare un oggetto di dati dell'evento di input. -
java-basic
: una raccolta di funzioni Java minimali con unit test e configurazione della registrazione dei log delle variabili. -
java-events
— Una raccolta di funzioni Java che contengono codice scheletrico su come gestire gli eventi di vari servizi come Amazon GatewayAPI, Amazon e Amazon SQS Kinesis. Queste funzioni utilizzano la versione più recente della aws-lambda-java-eventslibreria (3.0.0 e successive). Questi esempi non richiedono che sia una dipendenza AWS SDK. -
s3-java
: una funzione Java che elabora gli eventi di notifica da Amazon S3 e utilizza la Java Class Library JCL () per creare miniature dai file di immagine caricati. -
Usa API Gateway per richiamare una funzione Lambda, una funzione Java che analizza una tabella Amazon DynamoDB che contiene informazioni sui dipendenti. Quindi utilizza Amazon Simple Notification Service per inviare un messaggio di testo ai dipendenti per festeggiare i loro anniversari di lavoro. Questo esempio utilizza API Gateway per richiamare la funzione.