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 para Ruby, con credenciales de un rol de AWS Identity and Access Management (IAM) que usted administre. Para obtener más información sobre las versiones del SDK incluidas en los tiempos de ejecución de Ruby, consulte Versiones del SDK incluidas en el tiempo de ejecución.
Lambda admite los siguientes entornos de tiempos de ejecución de Ruby.
Nombre | Identificador | Sistema operativo | Fecha de baja | Bloqueo de la función Crear | Bloqueo de la función Actualizar |
---|---|---|---|---|---|
Ruby 3.3 |
|
Amazon Linux 2023 |
31 de marzo de 2027 |
30 de abril de 2027 |
31 de mayo de 2027 |
Ruby 3.2 |
|
Amazon Linux 2 |
31 de marzo de 2026 |
30 de abril de 2026 |
31 de mayo de 2026 |
Para crear una función Ruby
-
Abra la consola de Lambda
. -
Seleccione Creación de función.
-
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.
-
-
Seleccione Creación de 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. En la sección IMPLEMENTAR, elija Implementar para actualizar el código de la función. A continuación, para ejecutar el código, seleccione Crear evento de prueba en la sección EVENTOS DE PRUEBA.
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.
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 Registros de CloudWatch. El tiempo de ejecución de la función envía detalles de cada invocación a Registros de CloudWatch. 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.
Temas
Versiones del SDK incluidas en el tiempo de ejecución
La versión del AWS SDK incluida en el tiempo de ejecución de Ruby depende de la versión del tiempo de ejecución y de su Región de AWS. AWS SDK para Ruby está diseñado para ser modular y está separado por Servicio de AWS. Para encontrar el número de versión de una gema de servicio concreta incluida en el tiempo de ejecución que está utilizando, cree una función de Lambda con código en el siguiente formato. Sustituya aws-sdk-s3
y Aws::S3
por el nombre de las gemas de servicio que utilice su código.
require 'aws-sdk-s3'
def lambda_handler(event:, context:)
puts "Service gem version: #{Aws::S3::GEM_VERSION}"
puts "Core version: #{Aws::CORE_GEM_VERSION}"
end
Habilitación de otro JIT de Ruby (YJIT)
El tiempo de ejecución de Ruby 3.2 es compatible con YJIT
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