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

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
Nombre Identifier SDK Sistema operativo Arquitecturas Obsolescencia

Ruby 2.7

ruby2.7

3.1.0

Amazon Linux 2

x86_64, arm64

nota

Para obtener información sobre el fin de soporte de Ruby 2.5, consulte Política de obsolescencia del tiempo de ejecución.

Las funciones de Lambda utilizan un rol de ejecución para obtener permiso para escribir registros en Amazon CloudWatch Logs y acceder a otros servicios y recursos. Si aún no tiene un rol de ejecución para el desarrollo de funciones, cree uno.

Para crear un rol de ejecución
  1. Abra la página Roles en la consola de IAM.

  2. Elija Create role.

  3. Cree un rol con las propiedades siguientes.

    • Trusted entity (Entidad de confianza).Lambda:.

    • Permissions (Permisos): AWSLambdaBasicExecutionRole.

    • Nombre de rol: lambda-role.

    La política AWSLambdaBasicExecutionRole tiene permisos que la función necesita para escribir registros a CloudWatch Logs.

Puede agregar permisos al rol más tarde o convertirlo en un rol diferente específico a una sola función.

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

  2. Elija Create function (Crear función).

  3. Configure los siguientes ajustes:

    • Nombre: my-function.

    • Runtime (Tiempo de ejecución): Ruby 2.7.

    • Role (Rol): seleccione Choose an existing role (Elija un rol existente).

    • Rol existente: lambda-role.

  4. Elija Create function (Crear función).

  5. Para configurar un evento de prueba, seleccione Test (Prueba).

  6. En Event name (Nombre del evento), escriba test.

  7. Elija Save changes (Guardar cambios).

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

La consola crea una función 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 Save (Guardar). A continuación, para ejecutar el código, elija Pruebas.

nota

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

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 ejemplo disponibles en el repositorio de GitHub 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.

Su función de Lambda tiene un grupo de registros de CloudWatch Logs. El tiempo de ejecución de la función envía detalles de 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.