Creación de funciones de Lambda con Ruby - AWS Lambda

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Creación de funciones de Lambda con Ruby

Puede ejecutar código Ruby en AWS Lambda. Lambda ofrece tiempos de ejecución para Ruby que ejecutan código para procesar eventos. El código se ejecuta en un entorno que incluye AWS SDK for Ruby, con credenciales de un rol de AWS Identity and Access Management (IAM) que usted administre.

Lambda admite los siguientes entornos de tiempos de ejecución de Ruby.

Ruby
Name Identificador SDK Sistema operativo Fecha de baja Bloqueo de la función Crear Bloqueo de la función Actualizar

Ruby 3.2

ruby3.2

3.1.0

Amazon Linux 2

Para crear una función Ruby
  1. Abra la consola de Lambda.

  2. Elija Crear función.

  3. Configure los siguientes ajustes:

    • En Nombre de la función: ingrese el nombre de la función.

    • Tiempo de ejecución: elija Ruby 3.2.

  4. Elija Crear función.

  5. Para configurar un evento de prueba, seleccione Prueba.

  6. En Nombre del evento, escriba test.

  7. Elija Guardar cambios.

  8. Elija Test (Probar) para invocar la función.

La consola crea una función de Lambda con un único archivo de origen llamado lambda_function.rb. Puede editar este archivo y agregar más archivos en el editor de código integrado. Para guardar los cambios, elija Guardar. A continuación, para ejecutar el código, elija Pruebas.

nota

La consola de Lambda utiliza AWS Cloud9 para proporcionar un entorno de desarrollo integrado en el navegador. También puede utilizar AWS Cloud9 para desarrollar funciones de Lambda en su propio entorno. Para obtener más información, consulte Trabajar con funciones de AWS Lambda utilizando AWS Toolkit en la guía del usuario de AWS Cloud9.

El archivo lambda_function.rb exporta una función denominada lambda_handler que toma un objeto de evento y un objeto context. Esta es la función de controlador a la que llama Lambda cuando se invoca la función. El tiempo de ejecución de la función de Ruby obtiene eventos de Lambda y los pasa al controlador. En la configuración de función, el valor de controlador es lambda_function.lambda_handler.

Al guardar el código de función, la consola de Lambda crea un paquete de implementación de archivo .zip. Cuando desarrolle el código de función fuera de la consola (mediante un IDE), debe crear un paquete de implementación para cargar el código a la función de Lambda.

nota

Para comenzar con el desarrollo de aplicaciones en su entorno local, implemente una de las aplicaciones de muestra disponibles en el GitHub repositorio de esta guía.

Aplicaciones de Lambda de ejemplo en Ruby
  • blank-ruby: una función de Ruby que muestra el uso del registro, las variables de entorno, el seguimiento de AWS X-Ray, las pruebas de unidad y el AWS SDK.

  • Ejemplos de código de Ruby para AWS Lambda: muestras de código escritas en Ruby que demuestran cómo interactuar con AWS Lambda.

El tiempo de ejecución de la función pasa un objeto context al controlador, además del evento de invocación. El objeto context contiene información adicional acerca de la invocación, la función y el entorno de ejecución. Hay más información disponible en las variables de entorno.

La función Lambda incluye un grupo de CloudWatch registros. El tiempo de ejecución de la función envía detalles sobre cada invocación a CloudWatch Logs. Se transmite cualquier registro que su función genere durante la invocación. Si su función devuelve un error, Lambda formatea el error y lo devuelve al invocador.

Habilitación de otro JIT de Ruby (YJIT)

El tiempo de ejecución de Ruby 3.2 es compatible con YJIT, un compilador JIT de Ruby ligero y minimalista. YJIT proporciona un rendimiento significativamente mayor, pero también utiliza más memoria que el intérprete de Ruby. Se recomienda YJIT para cargas de trabajo de Ruby on Rails.

YJIT no está habilitado de forma predeterminada. Para habilitar YJIT para una función de Ruby 3.2, establezca la variable de entorno RUBY_YJIT_ENABLE en 1. Para confirmar que YJIT está habilitado, imprima el resultado del método RubyVM::YJIT.enabled?.

ejemplo — Confirme que YJIT está habilitado
puts(RubyVM::YJIT.enabled?()) # => true