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 qui inclut le 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 SDK incluses dans les environnements d'exécution Ruby, consultez. Versions du SDK incluses dans Runtime
Lambda prend en charge les runtimes Ruby suivants.
Ruby | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Nom | Identifiant | Système d’exploitation | Date d'obsolescence | Créer la fonction de blocage | Mettre à jour la fonction de blocage | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Ruby 3.3 |
|
Amazon Linux 2023 |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Ruby 3.2 |
|
Amazon Linux 2 |
Pour créer une fonction Ruby
-
Ouvrez la console Lambda
. -
Sélectionnez Créer une fonction.
-
Configurez les paramètres suivants :
-
Nom de la fonction : saisissez le nom de la fonction.
-
Exécution : choisissez Ruby 3.2.
-
-
Sélectionnez Créer une fonction.
-
Pour configurer un événement de test, choisissez Test.
-
Dans Event name (Nom de l’événement), saisissez
test
. -
Sélectionnez Save Changes.
-
Pour invoquer la fonction, choisissez Test.
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é. Choisissez Save pour enregistrer les changements. Ensuite, pour exécuter votre code, choisissez Test.
Note
La console Lambda fournit un environnement AWS Cloud9 de développement intégré dans le navigateur. Vous pouvez également les utiliser AWS Cloud9 pour développer des fonctions Lambda dans votre propre environnement. Pour plus d'informations, reportez-vous à la section Utilisation des AWS Lambda fonctions AWS Toolkità l'aide du guide de AWS Cloud9 l'utilisateur.
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.
Note
Pour démarrer le développement d'applications dans votre environnement local, déployez l'un des exemples d'applications disponibles dans le GitHub référentiel de ce guide.
Exemples d’applications Lambda en Ruby
-
blank-ruby
— Une fonction Ruby qui montre l'utilisation de la journalisation, des variables d'environnement, du AWS X-Ray traçage, des couches, des tests unitaires et du AWS SDK. Exemples de code Ruby pour AWS Lambda — Exemples de code écrits en Ruby qui montrent comment interagir avec Lambda AWS .
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 est fournie avec un groupe de CloudWatch journaux Logs. La fonction runtime envoie les détails de chaque appel à CloudWatch Logs. 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.
Rubriques
- Versions du SDK incluses dans Runtime
- Activer un autre JIT Ruby (YJIT)
- AWS LambdaGestionnaire de fonctions en Ruby
- Travailler avec des archives de fichiers .zip pour les fonctions Lambda Ruby
- Déploiement de fonctions Lambda en Ruby avec des images conteneurs
- AWS LambdaObjet de contexte en Ruby
- Journalisation des fonctions AWS Lambda en Ruby
- Erreurs de fonctions AWS Lambda en Ruby
- Instrumentation du code Ruby dans AWS Lambda
Versions du SDK incluses dans Runtime
La version du AWS SDK incluse dans le runtime Ruby dépend de la version d'exécution et de votre Région AWS. Le AWS SDK pour Ruby est conçu pour être modulaire et est séparé par Service AWS. Pour trouver le numéro de version d'une gemme de service particulière incluse dans le moteur 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 gemmes de service utilisées 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
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