Selecione suas preferências de cookies

Usamos cookies essenciais e ferramentas semelhantes que são necessárias para fornecer nosso site e serviços. Usamos cookies de desempenho para coletar estatísticas anônimas, para que possamos entender como os clientes usam nosso site e fazer as devidas melhorias. Cookies essenciais não podem ser desativados, mas você pode clicar em “Personalizar” ou “Recusar” para recusar cookies de desempenho.

Se você concordar, a AWS e terceiros aprovados também usarão cookies para fornecer recursos úteis do site, lembrar suas preferências e exibir conteúdo relevante, incluindo publicidade relevante. Para aceitar ou recusar todos os cookies não essenciais, clique em “Aceitar” ou “Recusar”. Para fazer escolhas mais detalhadas, clique em “Personalizar”.

Personalização da serialização para funções do Lambda em Java

Modo de foco
Personalização da serialização para funções do Lambda em Java - AWS Lambda

Os runtimes gerenciados para Java do Lambda oferecem suporte para a serialização personalizada para eventos JSON. A serialização personalizada pode simplificar o código e, potencialmente, aumentar a performance.

Quando usar serialização personalizada

Quando a função do Lambda é invocada, os dados do evento de entrada precisam passar pela desserialização em um objeto em Java, e a saída da função precisa ser serializada novamente em um formato que possa ser retornado como resposta da função. Os runtimes gerenciados do Lambda para Java fornecem funcionalidades de serialização e desserialização padrão que funcionam bem para lidar com cargas úteis de eventos de vários serviços da AWS, como o Amazon API Gateway e o Amazon Simple Queue Service (Amazon SQS). Para trabalhar com esses eventos de integração de serviços em sua função, adicione a dependência aws-java-lambda-events ao seu projeto. Esta biblioteca da AWS contém objetos em Java que representam esses eventos de integração de serviços.

Você também pode usar seus próprios objetos para representar o JSON do evento que você fornece para a função do Lambda. O runtime gerenciado tenta serializar o JSON para uma nova instância do objeto com o comportamento padrão. Se o serializador padrão não apresentar o comportamento desejado para o seu caso de uso, utilize a serialização personalizada.

Por exemplo, suponha que o manipulador da sua função espera uma classe Vehicle como entrada, com a seguinte estrutura:

public class Vehicle { private String vehicleType; private long vehicleId; }

No entanto, a carga útil do evento JSON é semelhante a:

{ "vehicle-type": "car", "vehicleID": 123 }

Neste caso, a serialização padrão no runtime gerenciado requer que os nomes das propriedades em JSON coincidam com os nomes das propriedades da classe Java em camel case (vehicleType e vehicleId). Como os nomes das propriedades no evento JSON não estão em camel case (vehicle-type e vehicleID), é necessário usar a serialização personalizada.

Implementação de serialização personalizada

Faça uso de uma interface de provedor de serviços para carregar um serializador de sua preferência, em vez de usar a lógica de serialização padrão do runtime gerenciado. É possível serializar as cargas úteis dos eventos JSON diretamente em objetos em Java ao usar a interface RequestHandler padrão.

Para usar a serialização personalizada em sua função do Lambda em Java
  1. Adicione a biblioteca aws-lambda-java-core como uma dependência. Esta biblioteca inclui a interface CustomPojoSerializer, juntamente com outras definições de interface para o uso com o Java no Lambda.

  2. Crie um arquivo chamado com.amazonaws.services.lambda.runtime.CustomPojoSerializer no diretório src/main/META-INF/services/ do seu projeto.

  3. Neste arquivo, especifique o nome totalmente qualificado da implementação de serializador personalizada, que deve implementar a interface CustomPojoSerializer. Exemplo:

    com.mycompany.vehicles.CustomLambdaSerialzer
  4. Implemente a interface CustomPojoSerializer para fornecer sua lógica de serialização personalizada.

  5. Use a interface RequestHandler padrão em sua função do Lambda. O runtime gerenciado usará o serializador personalizado.

Para obter mais exemplos de como implementar a serialização personalizada usando bibliotecas populares como fastJson, Gson, Moshi e jackson-jr, consulte o exemplo custom-serialization no repositório GitHub da AWS.

Teste da serialização personalizada

Teste sua função para garantir que sua lógica de serialização e desserialização esteja funcionando conforme o esperado. É possível usar a AWS Serverless Application Model Command Line Interface (AWS SAM CLI) para emular a invocação da carga útil da função do Lambda. Isso ajuda a testar e iterar rapidamente em sua função à medida que você implementa um serializador personalizado.

  1. Crie um arquivo com a carga útil do evento JSON que você deseja usar para invocar a função e, em seguida, chame a AWS SAM CLI.

  2. Execute o comando sam local invoke para invocar sua função localmente. Exemplo:

    sam local invoke -e src/test/resources/event.json

Para obter mais informações, consulte Locally invoke Lambda functions with AWS SAM.

PrivacidadeTermos do sitePreferências de cookies
© 2025, Amazon Web Services, Inc. ou suas afiliadas. Todos os direitos reservados.