Travailler avec des archives de fichiers .zip pour les fonctions Lambda 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.

Travailler avec des archives de fichiers .zip pour les fonctions Lambda Ruby

Le code de votre AWS Lambda fonction comprend un fichier .rb contenant le code du gestionnaire de votre fonction, ainsi que toutes les dépendances supplémentaires (gemmes) dont dépend votre code. Pour déployer ce code de fonction vers Lambda, vous utilisez un package de déploiement. Ce package peut être une archive de fichier .zip ou une image de conteneur. Pour plus d'informations sur l'utilisation d'images de conteneur avec Ruby, consultez la page Déployer des fonctions Lambda Ruby avec des images de conteneur.

Pour créer votre package de déploiement sous forme d’archive de fichier .zip, vous pouvez utiliser l’utilitaire d’archivage .zip intégré à votre outil de ligne de commande, ou tout autre utilitaire .zip tel que 7zip. Les exemples présentés dans les sections suivantes supposent que vous utilisez un outil zip de ligne de commande dans un environnement Linux ou macOS. Pour utiliser les mêmes commandes sous Windows, vous pouvez installer le sous-système Windows pour Linux afin d’obtenir une version intégrée à Windows d’Ubuntu et de Bash.

Notez que Lambda utilise les autorisations de fichiers POSIX. Ainsi, vous pourriez devoir définir des autorisations pour le dossier du package de déploiement avant de créer l’archive de fichiers .zip.

Les exemples de commandes présentés dans les sections suivantes utilisent l'utilitaire Bundler pour ajouter des dépendances à votre package de déploiement. Pour installer Bundler, exécutez la commande suivante.

gem install bundler

Dépendances dans Ruby

Pour les fonctions Lambda qui utilisent l'exécution Ruby, une dépendance peut être n'importe quelle GEM Ruby. Lorsque vous déployez votre fonction à l'aide d'une archive .zip, vous pouvez soit ajouter ces dépendances à votre fichier .zip avec votre code de fonction, soit utiliser une couche Lambda. Une couche est un fichier .zip séparé qui peut contenir du code supplémentaire et d'autres contenus. Pour en savoir plus sur l'utilisation des couches Lambda, consultez Utilisation de couches Lambda.

Le moteur d'exécution Ruby inclut le AWS SDK for Ruby. Si votre fonction utilise le kit SDK, vous n'avez pas besoin de l'intégrer à votre code. Toutefois, pour garder le contrôle total de vos dépendances ou pour utiliser une version spécifique du kit SDK, vous pouvez l'ajouter au package de déploiement de votre fonction. Vous pouvez inclure le kit SDK dans votre fichier .zip ou bien l'ajouter à l'aide d'une couche Lambda. Les dépendances de votre fichier .zip ou des couches Lambda sont prioritaires sur les versions incluses dans l'exécution. Pour savoir quelle version du SDK pour Ruby est incluse dans votre version d'exécution, Versions du SDK incluses dans Runtime consultez.

Dans le cadre du modèle de responsabilité partagée AWS, vous êtes responsable de la gestion de toutes les dépendances dans les packages de déploiement de vos fonctions. Cela inclut l’application de mises à jour et de correctifs de sécurité. Pour mettre à jour les dépendances dans le package de déploiement de votre fonction, créez d’abord un nouveau fichier .zip, puis chargez-le sur Lambda. Pour plus d’informations, consultez Création d'un package de déploiement .zip avec dépendances et Création et mise à jour de fonctions Lambda Ruby à l'aide de fichiers .zip.

Création d’un package de déploiement .zip sans dépendances

Si le code de votre fonction ne comporte aucune dépendance, votre fichier .zip contient uniquement le fichier .rb contenant le code du gestionnaire de votre fonction. Utilisez votre utilitaire zip préféré pour créer un fichier .zip avec votre fichier .rb à la racine. Si le fichier .rb ne se trouve pas à la racine de votre fichier .zip, Lambda ne sera pas en mesure d'exécuter votre code.

Pour savoir comment déployer votre fichier .zip pour créer une nouvelle fonction Lambda ou mettre à jour une fonction Lambda existante, veuillez consulter la rubrique Création et mise à jour de fonctions Lambda Ruby à l'aide de fichiers .zip.

Création d'un package de déploiement .zip avec dépendances

Si votre code de fonction dépend de GEM Ruby supplémentaires, vous pouvez soit ajouter ces dépendances à votre fichier .zip avec votre code de fonction, soit utiliser une couche Lambda. Les instructions de cette section vous indiquent comment inclure les dépendances dans votre package de déploiement .zip. Pour obtenir des instructions sur la façon d'inclure vos dépendances dans une couche, voir Création d'une couche Ruby pour vos dépendances.

Supposons que votre code de fonction soit enregistré dans un fichier nommé lambda_function.rb dans le répertoire de votre projet. L'exemple de commandes d'interface de ligne de commande suivant crée un fichier .zip nommé my_deployment_package.zip contenant le code de votre fonction et ses dépendances.

Pour créer le package de déploiement
  1. Dans le répertoire de votre projet, créez un fichier Gemfile pour y spécifier vos dépendances.

    bundle init
  2. En utilisant l'éditeur de texte de votre choix, modifiez le fichier Gemfile pour spécifier les dépendances de votre fonction. Par exemple, pour utiliser la GEM TZInfo, modifiez votre fichier Gemfile pour qu'il ressemble à ce qui suit.

    source "https://rubygems.org" gem "tzinfo"
  3. Exécutez la commande suivante pour installer les GEM spécifiées dans votre fichier Gemfile dans votre répertoire de projet. Cette commande définit vendor/bundle comme chemin par défaut pour les installations de GEM.

    bundle config set --local path 'vendor/bundle' && bundle install

    Vous devez visualiser des résultats similaires à ce qui suit.

    Fetching gem metadata from https://rubygems.org/........... Resolving dependencies... Using bundler 2.4.13 Fetching tzinfo 2.0.6 Installing tzinfo 2.0.6 ...
    Note

    Pour réinstaller globalement les GEM ultérieurement, exécutez la commande suivante.

    bundle config set --local system 'true'
  4. Créez une archive de fichiers .zip contenant le fichier lambda_function.rb avec le code du gestionnaire de votre fonction et les dépendances que vous avez installées à l'étape précédente.

    zip -r my_deployment_package.zip lambda_function.rb vendor

    Vous devez visualiser des résultats similaires à ce qui suit.

    adding: lambda_function.rb (deflated 37%) adding: vendor/ (stored 0%) adding: vendor/bundle/ (stored 0%) adding: vendor/bundle/ruby/ (stored 0%) adding: vendor/bundle/ruby/3.2.0/ (stored 0%) adding: vendor/bundle/ruby/3.2.0/build_info/ (stored 0%) adding: vendor/bundle/ruby/3.2.0/cache/ (stored 0%) adding: vendor/bundle/ruby/3.2.0/cache/aws-eventstream-1.0.1.gem (deflated 36%) ...

Création d'une couche Ruby pour vos dépendances

Les instructions de cette section vous indiquent comment inclure les dépendances dans une couche. Pour obtenir des instructions sur la façon d’inclure vos dépendances dans votre package de déploiement, voir Création d'un package de déploiement .zip avec dépendances.

Lorsque vous ajoutez une couche à une fonction, Lambda charge le contenu de la couche dans le répertoire /opt de cet environnement d’exécution. Pour chaque exécution Lambda, la variable PATH inclut déjà des chemins de dossiers spécifiques dans le répertoire /opt. Pour vous assurer que le contenu de votre couche est pris en charge par la variable PATH, incluez le contenu dans les chemins de dossier suivants :

  • ruby/gems/2.7.0 (GEM_PATH)

  • ruby/lib (RUBYLIB)

Par exemple, la structure du fichier .zip de votre couche peut ressembler à ce qui suit :

json.zip └ ruby/gems/2.7.0/ | build_info | cache | doc | extensions | gems | └ json-2.1.0 └ specifications └ json-2.1.0.gemspec

En outre, Lambda détecte automatiquement toutes les bibliothèques dans le répertoire /opt/lib et tous les fichiers binaires dans le répertoire /opt/bin. Pour que Lambda trouve correctement le contenu de votre couche, vous pouvez aussi créer une couche avec la structure suivante :

custom-layer.zip └ lib | lib_1 | lib_2 └ bin | bin_1 | bin_2

Après avoir empaqueté votre couche, reportez-vous à Création et suppression de couches dans Lambda et à Ajout de couches aux fonctions pour terminer la configuration de votre couche.

Création de packages de déploiement .zip avec des bibliothèques natives

De nombreuses GEM Ruby courantes telles que nokogiri, nio4r et mysql contiennent des extensions natives écrites en C. Lorsque vous ajoutez des bibliothèques contenant du code C à votre package de déploiement, vous devez créer votre package correctement pour vous assurer qu'il est compatible avec l'environnement d'exécution Lambda.

Pour les applications de production, nous vous recommandons de créer et de déployer votre code à l'aide de AWS Serverless Application Model (AWS SAM). AWS SAM Utilisez l'sam build --use-containeroption pour créer votre fonction dans un conteneur Docker de type Lambda. Pour en savoir plus sur l'utilisation AWS SAM de votre code de fonction pour déployer votre code de fonction, consultez la section Création d'applications dans le Guide du AWS SAM développeur.

Pour créer un package de déploiement .zip contenant des gemmes avec des extensions natives sans les utiliser AWS SAM, vous pouvez également utiliser un conteneur pour regrouper vos dépendances dans un environnement identique à l'environnement d'exécution Lambda Ruby. Pour réaliser ces étapes, Docker doit être installé sur votre machine de génération. Pour en savoir plus sur l'installation de Docker, consultez Installation du moteur Docker.

Pour créer un package de déploiement .zip dans un conteneur Docker
  1. Créez un dossier sur votre machine de génération locale pour y enregistrer votre conteneur. Dans ce dossier, créez un fichier nommé dockerfile et collez-y le code suivant.

    FROM public.ecr.aws/sam/build-ruby3.2:latest-x86_64 RUN gem update bundler CMD "/bin/bash"
  2. Dans le dossier dans lequel vous avez créé votre fichier dockerfile, exécutez la commande suivante pour créer le conteneur Docker.

    docker build -t awsruby32 .
  3. Accédez au répertoire du projet contenant le fichier .rb avec le code du gestionnaire de votre fonction et le fichier Gemfile spécifiant les dépendances de votre fonction. À partir de ce répertoire, exécutez la commande suivante pour démarrer le conteneur Lambda Ruby.

    Linux/MacOS
    docker run --rm -it -v $PWD:/var/task -w /var/task awsruby32
    Note

    Sous macOS, il se peut qu'un avertissement vous informe que la plateforme de l'image demandée ne correspond pas à la plateforme de l'hôte détectée. Ignorez cet avertissement.

    Windows PowerShell
    docker run --rm -it -v ${pwd}:var/task -w /var/task awsruby32

    Lorsque votre conteneur démarre, vous devriez voir une invite bash.

    bash-4.2#
  4. Configurez l'utilitaire bundle pour installer les GEM spécifiées dans votre fichier Gemfile dans votre répertoire vendor/bundle local et installer vos dépendances.

    bash-4.2# bundle config set --local path 'vendor/bundle' && bundle install
  5. Créez le package de déploiement .zip avec le code de votre fonction et ses dépendances. Dans cet exemple, le fichier contenant le code du gestionnaire de votre fonction est nommé lambda_function.rb.

    bash-4.2# zip -r my_deployment_package.zip lambda_function.rb vendor
  6. Quittez le conteneur et retournez dans votre répertoire de projet local.

    bash-4.2# exit

    Vous pouvez désormais utiliser le package de déploiement du fichier .zip pour créer ou mettre à jour votre fonction Lambda. Consultez Création et mise à jour de fonctions Lambda Ruby à l'aide de fichiers .zip.

Création et mise à jour de fonctions Lambda Ruby à l'aide de fichiers .zip

Une fois que vous avez créé votre package de déploiement .zip, vous pouvez l’utiliser pour créer une nouvelle fonction Lambda ou mettre à jour une fonction Lambda existante. Vous pouvez déployer votre package .zip à l'aide de la console Lambda, de l'API Lambda et AWS Command Line Interface de l'API Lambda. Vous pouvez également créer et mettre à jour des fonctions Lambda à l’aide de l’ AWS Serverless Application Model (AWS SAM) et de AWS CloudFormation.

La taille maximale d’un package de déploiement .zip pour Lambda est de 250 Mo (décompressé). Notez que cette limite s’applique à la taille combinée de tous les fichiers que vous chargez, y compris les couches Lambda.

Le runtime Lambda a besoin d’une autorisation pour lire les fichiers de votre package de déploiement. Dans la notation octale des autorisations Linux, Lambda a besoin de 644 autorisations pour les fichiers non exécutables (rw-r--r--) et de 755 autorisations () pour les répertoires et les fichiers exécutables. rwxr-xr-x

Sous Linux et macOS, utilisez la commande chmod pour modifier les autorisations de fichiers sur les fichiers et les répertoires de votre package de déploiement. Par exemple, pour accorder les autorisations appropriées à un fichier exécutable, exécutez la commande suivante.

chmod 755 <filepath>

Pour modifier les autorisations relatives aux fichiers dans Windows, voir Définir, afficher, modifier ou supprimer des autorisations sur un objet dans la documentation Microsoft Windows.

Création et mise à jour de fonctions avec des fichiers .zip à l’aide de la console

Pour créer une nouvelle fonction, vous devez d’abord créer la fonction dans la console, puis charger votre archive .zip. Pour mettre à jour une fonction existante, ouvrez la page de votre fonction, puis suivez la même procédure pour ajouter votre fichier .zip mis à jour.

Si votre fichier .zip fait moins de 50 Mo, vous pouvez créer ou mettre à jour une fonction en chargeant le fichier directement à partir de votre ordinateur local. Pour les fichiers .zip de plus de 50 Mo, vous devez d’abord charger votre package dans un compartiment Amazon S3. Pour savoir comment charger un fichier dans un compartiment Amazon S3 à l'aide du AWS Management Console, consultez Getting started with Amazon S3. Pour télécharger des fichiers à l'aide de AWS CLI, voir Déplacer des objets dans le guide de AWS CLI l'utilisateur.

Note

Vous ne pouvez pas modifier le type de package de déploiement (.zip ou image de conteneur) pour une fonction existante. Par exemple, vous ne pouvez pas convertir une fonction d'image de conteneur pour utiliser une archive de fichier .zip. Vous devez créer une nouvelle fonction.

Pour créer une nouvelle fonction (console)
  1. Ouvrez la page Fonctions de la console Lambda et choisissez Créer une fonction.

  2. Choisissez Créer à partir de zéro.

  3. Sous Informations de base, procédez comme suit :

    1. Pour Nom de la fonction, saisissez le nom de la fonction.

    2. Pour Exécution, sélectionnez l’exécution que vous souhaitez utiliser.

    3. (Facultatif) Pour Architecture, choisissez l’architecture de l’ensemble des instructions pour votre fonction. L’architecture par défaut est x86_64. Assurez-vous que le package de déploiement .zip pour votre fonction est compatible avec l’architecture de l’ensemble d’instructions que vous sélectionnez.

  4. (Facultatif) Sous Permissions (Autorisations), développez Change default execution role (Modifier le rôle d’exécution par défaut). Vous pouvez créer un rôle d’exécution ou en utiliser un existant.

  5. Choisissez Créer une fonction. Lambda crée une fonction de base « Hello world » à l’aide de l’exécution de votre choix.

Pour charger une archive .zip à partir de votre ordinateur local (console)
  1. Sur la page Fonctions de la console Lambda, choisissez la fonction pour laquelle vous souhaitez charger le fichier .zip.

  2. Sélectionnez l’onglet Code.

  3. Dans le volet Source du code, choisissez Charger à partir de.

  4. Choisissez Fichier .zip.

  5. Pour charger un fichier .zip, procédez comme suit :

    1. Sélectionnez Charger, puis choisissez votre fichier .zip dans le sélecteur de fichiers.

    2. Choisissez Ouvrir.

    3. Choisissez Enregistrer.

Pour charger une archive .zip depuis un compartiment Amazon S3 (console)
  1. Sur la page Fonctions de la console Lambda, choisissez la fonction pour laquelle vous souhaitez charger un nouveau fichier .zip.

  2. Sélectionnez l’onglet Code.

  3. Dans le volet Source du code, choisissez Charger à partir de.

  4. Choisissez l’emplacement Amazon S3.

  5. Collez l’URL du lien Amazon S3 de votre fichier .zip et choisissez Enregistrer.

Mise à jour des fonctions du fichier .zip à l’aide de l’éditeur de code de la console

Pour certaines fonctions avec des packages de déploiement .zip, vous pouvez utiliser l’éditeur de code intégré de la console Lambda pour mettre à jour le code de votre fonction directement. Pour utiliser cette fonctionnalité, votre fonction doit répondre aux critères suivants :

  • Votre fonction doit utiliser l’une des exécutions des langages interprétés (Python, Node.js ou Ruby).

  • Le package de déploiement de votre fonction doit être inférieur à 3 Mo.

Le code des fonctions avec les packages de déploiement d’images de conteneurs ne peut pas être édité directement dans la console.

Pour mettre à jour le code de fonction à l’aide de l’éditeur de code de la console
  1. Ouvrez la page Fonctions de la console Lambda et choisissez votre fonction.

  2. Sélectionnez l’onglet Code.

  3. Dans le volet Source du code, sélectionnez votre fichier de code source et modifiez-le dans l’éditeur de code intégré.

  4. Lorsque vous avez fini de modifier votre code, choisissez Déployer pour enregistrer vos modifications et mettre à jour votre fonction.

Création et mise à jour de fonctions avec des fichiers .zip à l'aide du AWS CLI

Vous pouvez utiliser l’AWS CLI pour créer une nouvelle fonction ou pour mettre à jour une fonction existante à l’aide d’un fichier .zip. Utilisez la fonction de création et update-function-codeles commandes pour déployer votre package .zip. Si votre fichier .zip est inférieur à 50 Mo, vous pouvez charger le package .zip à partir d’un emplacement de fichier sur votre machine de génération locale. Pour les fichiers plus volumineux, vous devez charger votre package .zip à partir d’un compartiment Amazon S3. Pour savoir comment charger un fichier dans un compartiment Amazon S3 à l'aide du AWS CLI, consultez la section Déplacer des objets dans le guide de AWS CLI l'utilisateur.

Note

Si vous chargez votre fichier .zip depuis un compartiment Amazon S3 à l'aide de AWS CLI, le compartiment doit se trouver au même endroit Région AWS que votre fonction.

Pour créer une nouvelle fonction à l'aide d'un fichier .zip avec le AWS CLI, vous devez spécifier les éléments suivants :

  • Le nom de votre fonction (--function-name)

  • L’exécution de votre fonction (--runtime)

  • L’Amazon Resource Name (ARN) du rôle d’exécution de votre fonction (--role)

  • Le nom de la méthode du gestionnaire dans votre code de fonction (--handler)

Vous devez également indiquer l’emplacement de votre fichier .zip. Si votre fichier .zip se trouve dans un dossier sur votre machine de génération locale, utilisez l’option --zip-file pour spécifier le chemin d’accès du fichier, comme le montre l’exemple de commande suivant.

aws lambda create-function --function-name myFunction \ --runtime ruby3.2 --handler lambda_function.lambda_handler \ --role arn:aws:iam::111122223333:role/service-role/my-lambda-role \ --zip-file fileb://myFunction.zip

Pour spécifier l’emplacement du fichier .zip dans un compartiment Amazon S3, utilisez l’option --code comme le montre l’exemple de commande suivant. Vous devez uniquement utiliser le paramètre S3ObjectVersion pour les objets soumis à la gestion des versions.

aws lambda create-function --function-name myFunction \ --runtime ruby3.2 --handler lambda_function.lambda_handler \ --role arn:aws:iam::111122223333:role/service-role/my-lambda-role \ --code S3Bucket=myBucketName,S3Key=myFileName.zip,S3ObjectVersion=myObjectVersion

Pour mettre à jour une fonction existante à l’aide de l’interface de ligne de commande, vous devez spécifier le nom de votre fonction à l’aide du paramètre --function-name. Vous devez également spécifier l’emplacement du fichier .zip que vous souhaitez utiliser pour mettre à jour votre code de fonction. Si votre fichier .zip se trouve dans un dossier sur votre machine de génération locale, utilisez l’option --zip-file pour spécifier le chemin d’accès du fichier, comme le montre l’exemple de commande suivant.

aws lambda update-function-code --function-name myFunction \ --zip-file fileb://myFunction.zip

Pour spécifier l’emplacement du fichier .zip dans un compartiment Amazon S3, utilisez les options --s3-bucket et --s3-key comme le montre l’exemple de commande suivant. Vous devez uniquement utiliser le paramètre --s3-object-version pour les objets soumis à la gestion des versions.

aws lambda update-function-code --function-name myFunction \ --s3-bucket myBucketName --s3-key myFileName.zip --s3-object-version myObject Version

Création et mise à jour de fonctions avec des fichiers .zip à l’aide de l’API Lambda

Pour créer et mettre à jour des fonctions à l’aide d’une archive de fichiers .zip, utilisez les opérations d’API suivantes :

Création et mise à jour de fonctions avec des fichiers .zip à l'aide de AWS SAM

The AWS Serverless Application Model (AWS SAM) est une boîte à outils qui permet de rationaliser le processus de création et d'exécution d'applications sans serveur sur AWS. Vous définissez les ressources de votre application dans un modèle YAML ou JSON et vous utilisez l'interface de ligne de AWS SAM commande (AWS SAM CLI) pour créer, empaqueter et déployer vos applications. Lorsque vous créez une fonction Lambda à partir d'un AWS SAM modèle, elle crée AWS SAM automatiquement un package de déploiement ou une image de conteneur .zip avec le code de votre fonction et les dépendances que vous spécifiez. Pour en savoir plus sur l'utilisation des fonctions Lambda AWS SAM pour créer et déployer des fonctions Lambda, consultez la section Getting started with AWS SAM dans le Guide du AWS Serverless Application Model développeur.

Vous pouvez également l'utiliser AWS SAM pour créer une fonction Lambda à l'aide d'une archive de fichiers .zip existante. Pour créer une fonction Lambda à l'aide de AWS SAM, vous pouvez enregistrer votre fichier .zip dans un compartiment Amazon S3 ou dans un dossier local sur votre machine de génération. Pour savoir comment charger un fichier dans un compartiment Amazon S3 à l'aide du AWS CLI, consultez la section Déplacer des objets dans le guide de AWS CLI l'utilisateur.

Dans votre AWS SAM modèle, la AWS::Serverless::Function ressource spécifie votre fonction Lambda. Dans cette ressource, définissez les propriétés suivantes pour créer une fonction à l’aide d’une archive de fichiers .zip :

  • PackageType : défini sur Zip

  • CodeUri- défini sur l'URI Amazon S3, le chemin d'accès au dossier local ou à l'FunctionCodeobjet du code de fonction

  • Runtime : défini sur votre exécution choisie

Ainsi AWS SAM, si votre fichier .zip est supérieur à 50 Mo, vous n'avez pas besoin de le télécharger au préalable dans un compartiment Amazon S3. AWS SAM peut télécharger des packages .zip jusqu'à la taille maximale autorisée de 250 Mo (décompressés) à partir d'un emplacement sur votre machine de compilation locale.

Pour en savoir plus sur le déploiement de fonctions à l'aide d'un fichier .zip dans AWS SAM, consultez AWS::Serverless::Functionle manuel du AWS SAM développeur.

Création et mise à jour de fonctions avec des fichiers .zip à l'aide de AWS CloudFormation

Vous pouvez l'utiliser AWS CloudFormation pour créer une fonction Lambda à l'aide d'une archive de fichiers .zip. Pour créer une fonction Lambda à partir d’un fichier .zip, vous devez d’abord charger votre fichier dans un compartiment Amazon S3. Pour savoir comment charger un fichier dans un compartiment Amazon S3 à l'aide du AWS CLI, consultez la section Déplacer des objets dans le guide de AWS CLI l'utilisateur.

Dans votre AWS CloudFormation modèle, la AWS::Lambda::Function ressource spécifie votre fonction Lambda. Dans cette ressource, définissez les propriétés suivantes pour créer une fonction à l’aide d’une archive de fichiers .zip :

  • PackageType : défini sur Zip

  • Code : saisissez le nom du compartiment Amazon S3 et le nom du fichier .zip dans les champs S3Bucket et S3Key

  • Runtime : défini sur votre exécution choisie

Le fichier .zip AWS CloudFormation généré ne peut pas dépasser 4 Mo. Pour en savoir plus sur le déploiement de fonctions à l'aide d'un fichier .zip dans AWS CloudFormation, consultez AWS::Lambda::Functionle Guide de l'AWS CloudFormation utilisateur.