Je souhaite créer un package de déploiement AWS Lamdba qui contient des dépendances de bibliothèques partagées binaires. Comment puis-je utiliser les packages d'AMI Amazon Linux sans recompiler le package ?

Un package de déploiement Lambda est un fichier .zip qui contient le code et toutes les dépendances. L'environnement d'exécution Lambda est basé sur une AMI Amazon Linux et une version de noyau spécifiques. Tous les binaires natifs qui sont utilisés dans un package de déploiement Lambda doivent être compilés dans cet environnement et seuls les binaires 64 bits sont pris en charge.

Pour utiliser les packages binaires natifs d'AMI Amazon Linux, vous pouvez extraire des bibliothèques 64 bits, puis les inclure dans votre package de déploiement Lambda. Une autre option, qui n'est pas couverte dans cet article, consiste à télécharger le code source dans la bibliothèque partagée, puis à recompiler le package.

Lancer une instance Amazon EC2 depuis l'AMI Amazon Linux

1.    Ouvrez Environnement d'exécution Amazon Lambda et bibliothèques disponibles et recherchez le nom de l'AMI qui commence par « amzn-ami-hvm ».

2.    Choisissez le lien avec le nom de l'AMI pour ouvrir la console Amazon Elastic Compute Cloud (Amazon EC2) afin d'accéder aux résultats de la recherche pour l'AMI.

3.    Choisissez Lancer pour ouvrir l'assistant Lancer une instance.

4.    Choisissez Vérifier et lancer pour valider les détails du lancement de l'instance dans l'assistant, puis choisissez Lancer.

Extraire les bibliothèques de l'instance

1.    Connectez-vous à l'instance, puis exécutez la commande suivante pour installer les outils permettant d'extraire les packages :

sudo yum install -y yum-utils rpmdevtools

2.    Si vous ignorez quelles bibliothèques et dépendances sont nécessaires pour votre code, utilisez yum pour les trouver.

Par exemple, pour les bibliothèques FreeTDS des bases de données Microsoft SQL Server et Sybase, exécutez la commande suivante :

sudo yum install freetds

Remarque : dans cet exemple, vous obtenez également des invites pour installer gnutls, libtool-ltdl et unixODBC pour les dépendances.

3.    Pour télécharger et extraire les bibliothèques et les dépendances, exécutez la commande suivante :

cd /tmp
yumdownloader unixODBC.x86_64 freetds.x86_64 libtool-ltdl.x86_64 gnutls.x86_64
rpmdev-extract *rpm

4.    Pour copier les bibliothèques dans un répertoire pour le package de déploiement Lambda, exécutez les commandes suivantes : 

sudo mkdir -p /var/task
sudo chown ec2-user:ec2-user /var/task
cd /var/task
/bin/cp /tmp/*/usr/lib64/* /var/task

Créer un package de déploiement

Effectuez l'une des actions suivantes :

  • Copiez votre code et d'autres ressources dans le même répertoire, effectuez toute configuration spécifique à votre code et à votre environnement d'exécution, puis testez.
  • Créez un package de déploiement de fichiers .zip en exécutant la commande suivante :
cd /var/task
zip -r9 /tmp/MyCodeWithLibraries.zip *

Déployez le package de déploiement de fichiers .zip, puis testez.

Pour plus d'informations sur la création d'un package de déploiement, consultez Exemple de code de fonction et Créer une fonction Lambda à l'aide des variables d'environnement.


Cette page vous a-t-elle été utile ? Oui | Non

Retour au Centre de connaissances AWS Support

Vous avez besoin d'aide ? Consultez le site du Centre AWS Support.

Date de publication : 14/11/2018