Packages de déploiement Lambda - AWS Lambda

Packages de déploiement Lambda

Le code de votre fonction AWS Lambda se compose de scripts ou de programmes compilés et leurs dépendances. Pour déployer votre code de fonction vers Lambda, vous utilisez un package de déploiement. Lambda prend en charge deux types de packages de déploiement : les images conteneurs et les archives de fichiers .zip.

Images de conteneur

Une image conteneur inclut le système d'exploitation de base, le runtime, des extensions Lambda, le code de votre application et ses dépendances. Vous pouvez également ajouter à l'image des données statiques, telles que des modèles de machine learning.

Lambda fournit un ensemble d'images de base open source que vous pouvez utiliser pour générer votre image conteneur. Pour créer et tester des images de conteneur, vous pouvez utiliser AWS Serverless Application Model (AWS SAM) l'interface de ligne de commande (CLI) ou les outils de conteneur natifs, tels que la CLI Docker.

Vous chargez vos images conteneurs dans Amazon Elastic Container Registry (Amazon ECR), un service de registre d'images conteneurs AWS géré. Pour déployer l'image vers votre fonction, spécifiez l'URL de l'image Amazon ECR à l'aide de la console Lambda, de l'API Lambda, des outils de ligne de commande, ou des kits  SDK AWS.

Pour plus d'informations sur les images conteneurs Lambda, consultez Création d’images de conteneur Lambda.

Note

Les images de conteneur ne sont pas prises en charge pour les fonctions Lambda dans la région du Moyen-Orient (UAE).

Archives de fichiers .zip

Une archive de fichiers .zip inclut le code de votre application et ses dépendances. Lorsque vous créez des fonctions à l'aide de la console Lambda ou d'une boîte à outils, Lambda crée automatiquement une archive de fichiers .zip de votre code.

Lorsque vous créez des fonctions avec l'API Lambda, les outils de ligne de commande ou les kits SDK AWS, vous devez créer un package de déploiement. Vous devez également créer un package de déploiement si votre fonction utilise un langage compilé, ou ajouter des dépendances à votre fonction. Pour déployer le code de votre fonction, vous chargez le package de déploiement à partir d'Amazon Simple Storage Service (Amazon S3) ou de votre ordinateur local.

Vous pouvez charger un fichier .zip en tant que package de déploiement à l'aide de la console Lambda, de l'AWS Command Line Interface (AWS CLI) ou d'un compartiment Amazon Simple Storage Service (Amazon S3).

Utilisation de la console Lambda

Les étapes suivantes expliquent comment charger un fichier .zip en tant que package de déploiement à l'aide de la console Lambda.

Pour charger un fichier .zip sur la console Lambda
  1. Ouvrez la page Functions (Fonctions) sur la console Lambda.

  2. Sélectionnez une fonction.

  3. Dans le volet Code Source (Source du code), choisissez Upload from (Charger à partir de), puis Fichier .zip.

  4. Sélectionnez Upload (Charger) pour sélectionner votre fichier .zip local.

  5. Choisissez Enregistrer.

À partir d AWS CLI

Vous pouvez charger un fichier .zip en tant que package de déploiement à l'aide de l'AWS Command Line Interface (AWS CLI). Pour obtenir des instructions spécifiques au langage, consultez les sections suivantes :

Node.js

Déployer des fonctions Lambda en Node.js avec des archives de fichiers .zip

Python

Déployer des fonctions Lambda en Python avec des archives de fichiers .zip

Ruby

Déployer des fonctions Lambda en Ruby avec des archives de fichiers .zip

Java

Déployer des fonctions Lambda en Java avec des archives de fichiers .zip ou JAR

Go

Déployer des fonctions Lambda Go avec des archives de fichiers .zip

C#

Déployer des fonctions Lambda C# avec des archives de fichiers .zip

PowerShell

Déployer des fonctions Lambda PowerShell avec des archives de fichiers .zip

Utilisation d'Amazon S3

Vous pouvez charger un fichier .zip en tant que package de déploiement à l'aide d'Amazon Simple Storage Service (Amazon S3). Pour plus d'informations, consultez Utilisation d'autres services AWS pour créer un package de déploiement.

Couches

Si vous déployez votre code de fonction à l'aide d'une archive de fichiers .zip, vous pouvez utiliser des couches Lambda en guide de mécanisme de distribution pour les bibliothèques, les runtimes personnalisés et d'autres dépendances de fonctions. Les couches vous permettent de gérer votre code de fonction en développement indépendamment du code immuable et des ressources qu'il utilise. Vous pouvez configurer votre fonction de sorte qu'elle utilise les couches que vous créez, les couches que AWS fournit, ou les couches d'autres clients AWS.

Vous n'utilisez pas de couches avec des images de conteneur. En lieu et place, vous conditionnez vos runtimes, bibliothèques et autres dépendances préférés en image de conteneur, lorsque vous créez l'image.

Pour plus d'informations sur les couches, consultez Création et partage de couches Lambda.

Utilisation d'autres services AWS pour créer un package de déploiement

La section suivante décrit d'autres services AWS que vous pouvez utiliser pour empaqueter des dépendances pour votre fonction Lambda.

Packages de déploiement avec bibliothèques C ou C++

Si votre package de déploiement contient des bibliothèques natives, vous pouvez créer le package de déploiement avec AWS Serverless Application Model (AWS SAM). Vous pouvez utiliser la commande AWS SAM de la CLI sam build avec le --use-container pour créer votre package de déploiement. Cette option génère un package de déploiement à l’intérieur d’une image Docker compatible avec l’environnement d’exécution Lambda.

Pour plus d'informations, consultez sam build dans le Guide du développeur AWS Serverless Application Model.

Packages de déploiement d'une taille supérieure à 50 Mo

Si votre package de déploiement est d'une taille supérieure à 50 Mo, chargez votre code de fonction et vos dépendances dans un compartiment Amazon S3.

Vous pouvez créer un package de déploiement et charger le fichier .zip) dans votre compartiment Amazon S3 dans la région AWS dans laquelle vous souhaitez créer une fonction Lambda. Lorsque vous créez votre fonction Lambda, spécifiez le nom du compartiment S3 et le nom de la clé d'objet sur la console Lambda, ou à l'aide de l'AWS CLI.

Pour créer un compartiment à l'aide de la console Amazon S3, veuillez consulter Comment créer un compartiment S3 ? dans le Guide de l'utilisateur de la console Amazon Simple Storage Service.