Controlador de funciones de AWS Lambda en Ruby - AWS Lambda

Controlador de funciones de AWS Lambda en Ruby

El controlador de funciones de Lambda es el método al que llama Lambda cuando se invoca la función. En el siguiente ejemplo, el archivo function.rb define un método de controlador llamado handler. La función de controlador tiene dos objetos como entrada y devuelve un documento JSON.

ejemplo function.rb

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

En su configuración de la función, el valor handler indica a Lambda dónde encontrar el controlador. Para el ejemplo anterior, el valor correcto para este valor es function.handler. Incluye dos nombres separados por un punto: el nombre del archivo y el nombre del método del controlador.

También puede definir su método de controlador en una clase. En el siguiente ejemplo se define un método de controlador llamado process en una clase llamada Handler en un módulo llamado LambdaFunctions.

ejemplo source.rb

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

En este caso, el valor del controlador es source.LambdaFunctions::Handler.process.

Los dos objetos que el controlador acepta son el evento de invocación y el contexto. El evento es un objeto Ruby que contiene la carga que proporciona el invocador. Si la carga es un documento JSON, el objeto de evento es un hash de Ruby. De lo contrario, es una cadena. Este objeto de contexto tiene métodos y propiedades que facilitan información acerca de la invocación, la función y el entorno de ejecución.

El controlador de la función se ejecuta cada vez que se invoca la función de Lambda. El código estático fuera del controlador se ejecuta una vez por instancia de la función. Si su controlador utiliza recursos como clientes de SDK y conexiones de bases de datos, puede crearlos fuera del método de controlador para volver a utilizarlos en varias invocaciones.

Cada instancia de la función permite procesar varios eventos de invocación, pero solo procesa un evento cada vez. El número de instancias que procesan un evento en un momento dado es la simultaneidad de la función. Para obtener más información acerca del contexto de ejecución de Lambda, consulte Contexto de ejecución de AWS Lambda.