Création de fonctions Lambda avec Ruby - AWS Lambda

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.

Lambda prend en charge les runtimes Ruby suivants.

Ruby
Nom Identifiant Kit SDK Système d’exploitation Architectures Obsolescence (Phase 1)

Ruby 2.7

ruby2.7

3.1.0

Amazon Linux 2

x86_64, arm64

Note

Pour obtenir des informations de support concernant Ruby 2.5, consultez politique d’obsolescence de l’exécution.

Les fonctions Lambda utilisent un rôle d’exécution pour obtenir l’autorisation d’écrire des journaux dans Amazon CloudWatch Logs, ainsi que d’accéder à d’autres services et ressources. Si vous ne possédez pas encore de rôle d’exécution pour le développement de fonctions, créez-en un.

Pour créer un rôle d’exécution
  1. Ouvrez la page Roles (Rôles) dans la console IAM.

  2. Sélectionnez Créer un rôle.

  3. Créez un rôle avec les propriétés suivantes :

    • Entité de confianceLambda.

    • AutorisationsAWSLambdaBasicExecutionRole.

    • Nom de rôlelambda-role.

    La stratégie AWSLambdaBasicExecutionRole possède les autorisations dont la fonction a besoin pour écrire des journaux dans CloudWatch Logs.

Vous pouvez ajouter des autorisations pour ce rôle plus tard, ou le remplacer par un autre rôle spécifique à une fonction particulière.

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

  2. Sélectionnez Créer une fonction.

  3. Configurez les paramètres suivants :

    • Nommy-function.

    • Environnement d’exécution (runtime)Ruby 2.7.

    • RoleChoisissez un rôle existant.

    • Rôle existantlambda-role.

  4. Sélectionnez Créer une fonction.

  5. Pour configurer un événement de test, choisissez Test.

  6. Dans Event name (Nom de l’événement), saisissez test.

  7. Sélectionnez Save Changes.

  8. Pour appeler 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 utilise AWS Cloud9 pour fournir un environnement de développement intégré dans le navigateur. Vous pouvez également utiliser AWS Cloud9 pour développer des fonctions Lambda dans votre propre environnement. Pour plus d’informations, veuillez consulter la section Utilisation des fonctions Lambda dans le guide de l’utilisateur AWS Cloud9.

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’appel de la fonction. L’environnement d’exécution (runtime) de la fonction Ruby obtient les événements d’appels 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 commencer à développer des applications dans votre environnement local, déployez l’un des exemples d’applications disponibles dans le référentiel GitHub de ce guide.

Exemples d’applications Lambda en Ruby
  • blank-ruby – Fonction Ruby qui montre l’utilisation de la journalisation, des variables d’environnement, du suivi de AWS X-Ray, des couches, des tests unitaires et du kit SDK AWS.

  • Exemples de code Ruby pour AWS Lambda – Exemples de code écrits en Ruby qui montrent comment interagir avec AWS Lambda.

Le runtime de la fonction transmet un objet de contexte au gestionnaire, en plus de l’événement d’appel. L’objet de contexte contient des informations supplémentaires sur l’appel, 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 appel. Il relaie tous les journaux que votre fonction génère pendant l’appel. Si votre fonction renvoie une erreur, Lambda met en forme l'erreur et la renvoie à l'appelant.