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.
Utilisation de l'objet de contexte Lambda pour récupérer les informations relatives aux fonctions Java
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 le nom de ressource Amazon (ARN) utilisé pour appeler 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 renvoyernull
.
Exemple sortie de journal
EVENT TYPE: class java.util.LinkedHashMap
L'interface de l'objet de contexte est disponible dans la aws-lambda-java-core
Exemple src/test/java/exemple/ .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(); } }
Pour de plus amples informations sur la journalisation, veuillez consulter Enregistrez et surveillez les fonctions Java Lambda.
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
-
java17-examples
: fonction Java qui montre comment utiliser un enregistrement Java pour représenter un objet de données d’événement en entrée. -
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 expliquant comment gérer les événements provenant de divers services tels qu'Amazon API GatewaySQS, Amazon 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 provenant d'Amazon S3 et utilise la bibliothèque de classes Java (JCL) pour créer des miniatures à partir de fichiers image téléchargés. -
Utilisez API Gateway pour appeler une fonction Lambda : fonction Java qui analyse une table Amazon DynamoDB contenant des informations sur les employés. Il utilise ensuite Amazon Simple Notification Service pour envoyer un message texte aux employés qui fêtent leur anniversaire professionnel. Cet exemple utilise API Gateway pour appeler la fonction.