Comment créer et partager des couches de lambda

Comment créer et partager des couches de lambda
Lambda Layer est un moyen intelligent d'emballer les dépendances et les bibliothèques qui simplifient le déploiement sans serveur. La couche est en fait un fichier zip qui contient toutes les dépendances. Il rétrécit la taille du package de déploiement et rend votre déploiement plus robuste. Parfois, il est nécessaire d'utiliser la fonction multiple lambda pour votre application et chaque fonction Lambda nécessite des mêmes bibliothèques, par exemple demandes bibliothèque. Dans ce cas, vous devez créer la couche qui a la bibliothèque de demande et joindre la couche avec vos fonctions lambda. Dans ce blog, nous étudierons comment créer la couche Lambda et comment l'utiliser dans votre fonction lambda.

Création de couche Lambda

AWS fournit les quatre façons suivantes de créer les couches en lambda:

  • Console AWS
  • Contrage
  • API Lambda
  • SAM (modèle d'application sans serveur)

Dans ce blog, nous utiliserons la console AWS pour créer la couche Lambda qui comprend le demandes module. Afin de créer la couche, créez d'abord un répertoire vide pour ajouter le code de la couche.

ubuntu @ ubuntu: ~ $ mkdir démo_requests

Accédez au répertoire nouvellement créé et installez le demandes module.

ubuntu @ ubuntu: ~ $ cd demo_requests
Ubuntu @ Ubuntu: ~ $ Pip3 Installer Demandes -T .

Cette commande installe le demandes bibliothèque dans ce dossier. Afin d'utiliser cela demandes Module en tant que calque, zipez ce dossier en utilisant d'abord la commande suivante:

ubuntu @ ubuntu: ~ $ zip -r démo_requests.zip démo_requests

Après avoir créé un fichier zip du module, accédez à votre console lambda et cliquez sur le Couches Onglet du panneau latéral gauche.

Il ouvre la console des couches lambda. Vous pouvez ajouter votre calque en cliquant sur le créer une couche bouton.

Une nouvelle page semble saisir les détails de la couche Lambda. Fournir le nom et la description de la couche. Pour cette démo, nous utilisons le démo_layer Comme le nom de la couche.

Maintenant, il existe deux options pour fournir le code au calque - l'une consiste à télécharger un fichier zip et l'autre est de télécharger le code de la console S3. Pour cette démo, nous téléchargeons le fichier zip qui inclut le demandes module.

Pour architecture compatible Options, laissez-la vide et ne cochez aucune case pour cette option. Comme notre code de couche comprend un demandes module qui est un module Python, le temps d'exécution pour ce calque est python. Après avoir saisi toute la configuration de la couche requise, cliquez sur le créer bouton pour créer le calque.

Utilisation de la couche lambda dans votre fonction lambda

Dans la section précédente, nous avons créé une couche Lambda qui comprend un demandes module. Maintenant, dans cette section, nous ajoutons cette couche lambda dans notre fonction lambda. Afin d'ajouter une couche lambda dans la fonction lambda, cliquez sur la fonction lambda et faites défiler vers le bas vers le couches section.

Cliquez sur l'annonceD une couche bouton pour ajouter une nouvelle couche à votre fonction lambda. Il ouvre une nouvelle page qui demande les détails de la couche lambda. Il existe trois types de sources de couche Lambda:

  • Couches AWS
  • Couches personnalisées
  • Spécifiez un ARN

Afin d'ajouter une couche à la fonction lambda que nous avons créée dans notre compte, nous devons sélectionner l'option Calques personnalisées comme source de couche. Après avoir sélectionné la source de calque, dans la liste, sélectionnez un calque que vous avez créé dans la section précédente et cliquez sur le Ajouter bouton pour ajouter le calque dans votre fonction lambda.

Maintenant, après avoir ajouté la couche, vous n'avez pas besoin d'installer le demandes module de votre fonction lambda lorsque nous importons le demandes module via la couche lambda.

Partage des couches de lambda

Par défaut, la couche Lambda est privée et ne peut être utilisée que dans votre compte AWS. Mais, vous pouvez gérer les autorisations de votre couche Lambda en utilisant l'interface de ligne de commande pour partager les couches avec un autre compte ou organisation AWS. La console AWS n'a pas la caractéristique du partage des couches Lambda avec d'autres comptes AWS. Le complacer la version-version-permission La méthode est utilisée pour partager les couches à l'aide de l'interface de ligne de commande. Dans les sections à venir du blog, nous verrons comment nous pouvons partager les couches Lambda avec d'autres comptes ou organisations AWS.

Partage de la couche lambda à un compte AWS spécifique

Afin de partager la couche Lambda, le complacer la version-version-permission La méthode d'interface de ligne de commande est utilisée. Vous devez spécifier le nom de la couche que vous souhaitez partager l'instruction-ID, le numéro de version et le compte AWS auquel vous souhaitez partager le calque. Ce qui suit est la commande pour partager la couche Lambda avec un autre compte AWS à l'aide de l'interface de ligne de commande:

ubuntu @ ubuntu: ~ $ aws lambda add-coucheer-Version-Permission \
--nom de couche Demo_layer \
--Action Lambda: getLayerVersion \
--instruction-id instruction-1 \
--version de version 1
--principal \

Partage publiquement la couche lambda

Afin de partager publiquement une couche Lambda sur votre compte AWS pour être accessible sur tous les comptes AWS, il vous suffit de modifier le principal paramètre de la commande qui est utilisée dans la section précédente. Au lieu de spécifier un ID de compte AWS, vous devez utiliser un «*» comme directeur pour partager publiquement la couche Lambda sur tous les comptes AWS.

ubuntu @ ubuntu: ~ $ aws lambda add-coucheer-Version-Permission \
--nom de couche Demo_layer \
--instruction-id instruction-2 \
--Action Lambda: getLayerVersion \
--principal * \
--version de version 1

Partage de la couche Lambda avec tous les comptes AWS d'une organisation

Tout comme un compte AWS, les couches lambda peuvent également être partagées avec tous les comptes AWS d'une organisation. Afin de partager la couche Lambda avec tous les comptes d'une organisation, vous devez ajouter le ID d'organisation paramètre dans le complacer la version-version-permission commande. Voici la commande de partager la couche Lambda à tous les comptes AWS d'une organisation:

ubuntu @ ubuntu: ~ $ aws lambda add-coucheer-Version-Permission \
--nom de couche Demo_layer \
--instruction-id instruction-3 \
--Action Lambda: getLayerVersion \
--principal * \
--ID d'organisation \
--version de version 1

Conclusion

Dans ce blog, nous avons étudié comment créer et partager la couche Lambda pour réutiliser les petits morceaux de notre code en différentes fonctions lambda. Nous avons appris à créer un fichier zip d'une bibliothèque de requêtes Python et créé une couche Lambda à l'aide de ce fichier zip. Après avoir créé la couche Lambda, nous avons ajouté cette couche Lambda à notre fonction Lambda pour augmenter la réutilisabilité du code. Nous avons également expliqué comment nous pouvons partager les couches lambda avec des comptes AWS spécifiques et tous les comptes d'une organisation.