As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
Objeto de contexto do AWS Lambda em Java
Quando o Lambda executa a função, ele transmite um objeto de contexto para o handler. Esse objeto fornece métodos e propriedades que fornecem informações sobre a invocação, a função e o ambiente de execução.
Métodos de contexto
-
getRemainingTimeInMillis()
— Retorna o número de milissegundos restantes antes do tempo limite da execução. -
getFunctionName()
: retorna o nome da função do Lambda. -
getFunctionVersion()
— Retorna oversionda função do. -
getInvokedFunctionArn()
: retorna o nome do recurso da Amazon (ARN) usado para invocar a função. Indica se o invocador especificou um número de versão ou alias. -
getMemoryLimitInMB()
— Retorna a quantidade de memória alocada para a função. -
getAwsRequestId()
— Retorna o identificador de invocação da solicitação. -
getLogGroupName()
— Retorna o grupo de logs para a função do. -
getLogStreamName()
— Retorna o stream de log para a instância da função. -
getIdentity()
— (aplicativos móveis) Retorna informações sobre a identidade do Amazon Cognito que autorizou a solicitação. -
getClientContext()
— (aplicativos móveis) Retorna o contexto do cliente que é fornecido ao Lambda pelo aplicativo cliente. -
getLogger()
: retorna o objeto logger para a função.
O exemplo a seguir mostra uma função que usa o objeto de contexto para acessar o logger do Lambda.
exemplo Handler.java
package example; import com.amazonaws.services.lambda.runtime.Context import com.amazonaws.services.lambda.runtime.RequestHandler import com.amazonaws.services.lambda.runtime.LambdaLogger ... // Handler value: example.Handler public class Handler implements RequestHandler<Map<String,String>, String>{ Gson gson = new GsonBuilder().setPrettyPrinting().create(); @Override public String handleRequest(Map<String,String> event, Context context) {
LambdaLogger logger = context.getLogger();
String response = new String("200 OK"); // log execution details logger.log("ENVIRONMENT VARIABLES: " + gson.toJson(System.getenv()));logger.log("CONTEXT: " + gson.toJson(context));
// process event logger.log("EVENT: " + gson.toJson(event)); logger.log("EVENT TYPE: " + event.getClass().toString()); return response; } }
A função serializa o objeto de contexto em JSON e o registra em seu fluxo de log.
exemplo saída do log
START RequestId: 6bc28136-xmpl-4365-b021-0ce6b2e64ab0 Version: $LATEST ... CONTEXT: { "memoryLimit": 512, "awsRequestId": "6bc28136-xmpl-4365-b021-0ce6b2e64ab0", "functionName": "java-console", ... } ... END RequestId: 6bc28136-xmpl-4365-b021-0ce6b2e64ab0 REPORT RequestId: 6bc28136-xmpl-4365-b021-0ce6b2e64ab0 Duration: 198.50 ms Billed Duration: 200 ms Memory Size: 512 MB Max Memory Used: 90 MB Init Duration: 524.75 ms
A interface para o objeto de contexto está disponível na biblioteca aws-lambda-java-core
exemplo src/test/java/exemplo/ .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 LambdaLogger getLogger(){ return new TestLogger(); } }
Para obter mais informações sobre registro em log, consulte Registro em log da função do AWS Lambda em Java.
Contexto em aplicativos de exemplo
O GitHub repositório deste guia inclui exemplos de aplicativos que demonstram o uso do objeto de contexto. Cada aplicativo de exemplo inclui scripts para fácil implantação e limpeza, um modelo do AWS Serverless Application Model (AWS SAM) e recursos de suporte.
Aplicações de exemplo do Lambda em Java
-
java17-examples
: uma função em Java que demonstra como usar um registro Java para representar um objeto de dados de evento de entrada. -
java-basic
: uma coleção de funções Java mínimas com testes de unidade e configuração de registro em log variável. -
java-events
: uma coleção de funções do Java contendo código básico sobre como lidar com eventos de vários serviços, como o Amazon API Gateway, o Amazon SQS e o Amazon Kinesis. Essas funções usam a versão mais recente da aws-lambda-java-eventsbiblioteca (3.0.0 e mais recente). Estes exemplos não exigem oAWS SDK como dependência. -
s3-java
: uma função em Java que processa eventos de notificação do Amazon S3 e usa a Java Class Library (JCL) para criar miniaturas de arquivos de imagem enviados por upload. -
Use API Gateway to invoke a Lambda function (Usar o API Gateway para invocar uma função do Lambda): uma função Java que verifica uma tabela do Amazon DynamoDB contendo informações de funcionários. Em seguida, usa o Amazon Simple Notification Service para enviar uma mensagem de texto aos funcionários comemorando seus aniversários de empresa. Este exemplo usa o API Gateway para invocar a função.
Todos os aplicativos de exemplo têm uma classe de contexto de teste para testes de unidade. O aplicativo java-basic
mostra como usar o objeto de contexto para obter um logger. Ele usa SLF4J e Log4J 2 para fornecer um logger que funcione para testes de unidade local.