Création de fonctions Lambda avec Ruby - AWS Lambda

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Création de fonctions Lambda avec Ruby

Vous pouvez exécuter du code Ruby dans AWS Lambda. Lambda fournit des runtimes pour Ruby qui exécutent votre code afin de traiter des événements. Votre code s'exécute dans un environnement incluant l'AWS SDK for Ruby, avec les informations d'identification d'un rôle AWS Identity and Access Management (IAM) que vous gérez. Pour en savoir plus sur les versions du kit SDK incluses dans les environnements d’exécution Ruby, consultez Versions du SDK incluses dans l’environnement d’exécution.

Lambda prend en charge les runtimes Ruby suivants.

Nom Identifiant Système d’exploitation Date d'obsolescence Créer la fonction de blocage Mettre à jour la fonction de blocage

Ruby 3.3

ruby3.3

Amazon Linux 2023

Non planifié

Non planifié

Non planifié

Ruby 3.2

ruby3.2

Amazon Linux 2

Non planifié

Non planifié

Non planifié

Pour créer une fonction Ruby
  1. Ouvrez la console Lambda.

  2. Sélectionnez Créer une fonction.

  3. Configurez les paramètres suivants :

    • Nom de la fonction : saisissez le nom de la fonction.

    • Exécution : choisissez Ruby 3.2.

  4. Sélectionnez Create function (Créer une fonction).

La console crée une fonction Lambda avec un seul fichier source nommé lambda_function.rb. Vous pouvez modifier ce fichier et ajouter d'autres fichiers dans l'éditeur de code intégré. Dans la section DÉPLOYER, choisissez Déployer pour mettre à jour le code de votre fonction. Ensuite, pour exécuter votre code, choisissez Créer un événement de test dans la section ÉVÉNEMENTS DE TEST.

Le fichier lambda_function.rb exporte une fonction nommée lambda_handler qui accepte un objet événement et un objet contexte. Il s'agit de la fonction de gestionnaire que Lambda appelle lors de l'invocation de la fonction. L'environnement d'exécution (runtime) de la fonction Ruby obtient les événements d'invocations de Lambda et les transmet au gestionnaire. Dans la configuration de fonction, la valeur de gestionnaire est lambda_function.lambda_handler.

Lorsque vous enregistrez votre code de fonction, la console Lambda crée un package de déploiement d’archive de fichiers .zip. Lorsque vous développez votre code de fonction en dehors de la console (à l’aide d’un IDE), vous devez créer un package de déploiement pour charger votre code dans la fonction Lambda.

Le runtime de la fonction transmet un objet de contexte au gestionnaire, en plus de l’événement d’invocation. L’objet de contexte contient des informations supplémentaires sur l’invocation, la fonction et l’environnement d’exécution. Des informations supplémentaires sont disponibles dans les variables d’environnement.

Votre fonction Lambda intègre un groupe de journaux CloudWatch Logs. Le runtime de la fonction envoie à CloudWatch Logs des détails sur chaque invocation. Il relaie tous les journaux que votre fonction génère pendant l’invocation. Si votre fonction renvoie une erreur, Lambda met en forme l’erreur et la renvoie à l’appelant.

Versions du SDK incluses dans l’environnement d’exécution

La version du kit SDK AWS incluse dans l’environnement d’exécution Ruby dépend de la version de l’environnement d’exécution et de votre Région AWS. Le kit SDK AWS pour Ruby est conçu pour être modulaire et est distinct en fonction des Service AWS. Pour trouver le numéro de version d’un gem de service particulier inclus dans l’environnement d’exécution que vous utilisez, créez une fonction Lambda avec un code au format suivant. Remplacez aws-sdk-s3 et Aws::S3 par le nom des gems de service utilisés par votre code.

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

Activer un autre JIT Ruby (YJIT)

L'exécution Ruby 3.2 prend en charge YJIT, un compilateur JIT Ruby léger et minimaliste. YJIT offre des performances nettement supérieures, mais utilise également plus de mémoire que l'interpréteur Ruby. YJIT est recommandé pour les charges de travail Ruby on Rails.

YJIT n'est pas activé par défaut. Pour activer YJIT pour une fonction Ruby 3.2, définissez la variable d'environnement RUBY_YJIT_ENABLE sur 1. Pour confirmer que YJIT est activé, imprimez le résultat de la méthode RubyVM::YJIT.enabled?.

Exemple – Confirmez que YJIT est activé
puts(RubyVM::YJIT.enabled?()) # => true