Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Lorsque Lambda exécute votre fonction, il transmet un objet contexte au gestionnaire. Cet objet fournit des méthodes et des propriétés fournissant des informations sur l’invocation, la fonction et l’environnement d’exécution.
Méthodes de contexte
-
getRemainingTimeInMillis()
– Renvoie le nombre de millisecondes restant avant l'expiration de l'exécution. -
getFunctionName()
– Renvoie le nom de la fonction Lambda. -
getFunctionVersion()
– Renvoie la version de la fonction. -
getInvokedFunctionArn()
– Renvoie l'Amazon Resource Name (ARN) utilisé pour invoquer la fonction. Indique si l'appelant a spécifié un numéro de version ou un alias. -
getMemoryLimitInMB()
– Renvoie la quantité de mémoire allouée à la fonction. -
getAwsRequestId()
– Renvoie l'identifiant de la demande d'invocation. -
getLogGroupName()
– Renvoie le groupe de journaux pour la fonction. -
getLogStreamName()
– Renvoie le flux de journal de l'instance de fonction. -
getIdentity()
– (applications mobiles) Renvoie des informations sur l'identité Amazon Cognito qui a autorisé la demande. -
getClientContext()
– (applications mobiles) Renvoie le contexte client fourni à Lambda par l'application client. -
getLogger()
– Renvoie l'objet enregistreur pour la fonction.
L'exemple suivant montre une fonction qui utilise l'objet contexte pour accéder à l'enregistreur Lambda.
Exemple 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 fonction enregistre le type de classe de l’événement entrant avant de le renvoyer null
.
Exemple sortie de journal
EVENT TYPE: class java.util.LinkedHashMap
L'interface de l'objet contextuel est disponible dans la bibliothèque aws-lambda-java-core
Exemple src/test/java/example/TestContext.java
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();
}
}
Pour de plus amples informations sur la journalisation, veuillez consulter Journalisation et surveillance des fonctions Lambda Java.
Contexte dans des exemples d'applications
Le GitHub référentiel de ce guide inclut des exemples d'applications illustrant l'utilisation de l'objet de contexte. Chaque exemple d'application inclut des scripts pour faciliter le déploiement et le nettoyage, un modèle AWS Serverless Application Model (AWS SAM) et des ressources de support.
Exemples d’applications Lambda en Java
-
example-java
— Fonction Java qui montre comment utiliser Lambda pour traiter les commandes. Cette fonction montre comment définir et désérialiser un objet d'événement d'entrée personnalisé, utiliser le AWS SDK et enregistrer les sorties. -
java-basic
– Ensemble de fonctions Java minimales avec des tests unitaires et une configuration de journalisation variable. -
java events
– Ensemble de fonctions Java contenant du code squelette permettant de gérer les événements de divers services tels qu’Amazon API Gateway, Amazon SQS et Amazon Kinesis. Ces fonctions utilisent la dernière version de la aws-lambda-java-eventsbibliothèque (3.0.0 et versions ultérieures). Ces exemples ne nécessitent pas le AWS SDK comme dépendance. -
s3-java
– Fonction Java qui traite les événements de notification d’Amazon S3 et utilise la bibliothèque de classes Java (JCL) pour créer des miniatures à partir de fichiers d’image chargés. -
layer-java
— Fonction Java qui illustre comment utiliser une couche Lambda pour empaqueter les dépendances séparément du code de votre fonction principale.