AWS Lambda
Guia do desenvolvedor

Manipulador de função do AWS Lambda no Ruby

O handler da função do Lambda é o método que o Lambda chama quando a função é invocada. No exemplo a seguir, o arquivo function.rb define um método de handler chamado handler. A função do handler usa dois objetos como entrada e retorna um documento JSON.

exemplo function.rb

require 'json' def handler(event:, context:) { event: JSON.generate(event), context: JSON.generate(context.inspect) } end

Em sua configuração de função, a configuração handler informa o Lambda onde encontrar o handler. Para o exemplo anterior, o valor correto para essa configuração é function.handler. Ele inclui dois nomes separados por um ponto: o nome do arquivo e o nome do método do handler.

Você também pode definir o método de handler em uma classe. O exemplo a seguir define um método de handler chamado process em uma classe denominada Handler em um módulo chamado LambdaFunctions.

exemplo source.rb

module LambdaFunctions class Handler def self.process(event:,context:) "Hello!" end end end

Nesse caso, a configuração do handler é source.LambdaFunctions::Handler.process.

Os dois objetos que o handler aceita são os eventos de invocação e contexto. O evento é um objeto Ruby que contém a carga que é fornecida pelo chamador. Se a carga útil for um documento JSON, o objeto de evento é um hash do Ruby. Caso contrário, é uma string. O objeto de contexto tem métodos e propriedades que fornecem informações sobre a invocação, a função e o ambiente de execução.

O handler da função é executado sempre que sua função do Lambda é invocada. O código estático fora do handler é executado uma vez por instância da função. Se o handler usar recursos como clientes SDK e conexões de banco de dados, você poderá criá-los fora do método de handler para reutilizá-los para várias invocações.

Cada instância de sua função pode processar vários eventos de invocação, mas ela processa apenas um evento por vez. O número de instâncias que processam um evento em um momento é a simultaneidade da sua função. Para obter mais informações sobre o contexto de execução do Lambda, consulte Contexto de execução do AWS Lambda.