Le stockage de nœud sur un module de compartiment S3 pour AWS Lambda

0

La question

J'ai développé une nodejs fonction/programme et que vous voulez exécuter sur AWS Lambda. Le problème est que la taille est supérieure à 50 mo et AWS Lambda prend en charge directe de la fonction de code en vertu de 50 MO.

Principalement sur mon code le nœud du module sont de 43MB et le code réel est d'environ 7MO. Si il ya une façon de me séparer de mon nœud module de code, Peut-être, si l'on peut stocker le nœud de modules dans un compartiment S3, puis accédez-y sur AWS Lambda? Toute suggestion serait utile. Merci

P. S: en Raison de certains problèmes de dépendances je ne peux pas exécuter cette fonction comme Docker image Lambda.

amazon-web-services aws-lambda node.js
2021-11-23 22:10:38
2
1

Si vous ne voulez pas ou ne pouvez pas utiliser le Panneau de l'emballage, vous pouvez compresser votre node_modules dans un compartiment S3.

Votre handler (ou le module contenant votre gestionnaire), peut alors télécharger l'archive zip et extraire les fichiers à /tmp. Ensuite, vous require() vos modules à partir de là.

La description ci-dessus de ne pas être précis à 100% comme il y a beaucoup de façons de le faire. Mais c'est l'idée générale.

C'est une méthode de déploiement zappaun outil de déploiement de Python/Django applications sur AWS Lambda, a soutenu longtemps avant de conteneurs docker a été autorisé à Lambda.

https://github.com/Miserlou/Zappa/pull/548

2021-11-23 22:49:27
1

Vous pouvez utiliser lambda couches qui est un ajustement parfait pour votre cas d'utilisation. Il y a quelque temps, nous avons besoin d'utiliser facebook sdk pour l'un de nos projets, et nous avons créé un lambda couche pour le facebook sdk(32 mo) et ensuite le package de déploiement est devenu seulement 4 KO.

Il est précisé que

À l'aide de calques peut le rendre plus rapide pour déployer des applications avec AWS sans serveur d'Application de Modèle (AWS SAM) ou sans serveur-cadre. En déplaçant les dépendances d'exécution de votre code de fonction à une couche, ça peut aider reduce the overall size of the archive téléchargé lors d'un déploiement.

Seule une fonction Lambda peut utiliser jusqu'à five layers. La taille maximale du total décompressé de la fonction et de l'ensemble des couches est 250 MB ce qui est bien au-delà de vos limites.

2021-11-24 17:39:02

Dans d'autres langues

Cette page est dans d'autres langues

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................