Je rencontre un problème lors du chargement d'un module de noeud dans AWS Lambda à l'aide de Serverless Framework. L'un de mes packages de nœuds utilise des bibliothèques natives. J'ai donc utilisé un EC2 pour créer les dossiers node_module, puis les ai copiés dans mon projet Serverless. Tout fonctionne si je manuellement la fermeture éclair du projet et télécharger sur AWS Lambda, mais si j'utilise serverless deploy
sans artefact spécifié, je reçois une erreur sur le module (en particulier: ELF file's phentsize not the expected size
concernant un fichier .node)Serverless NodeJS/Native node_modules
J'ai essayé d'ajouter excludeDevDependencies: false
ce qui rend le déploiement plus important mais me donne toujours l'erreur. Actuellement, cela fonctionne uniquement si je compresser le contenu du dossier de projet et spécifier ce fichier comme artefact à télécharger. Existe-t-il un moyen différent de déployer un module de noeud avec des liaisons natives avec Serverless? MISE À JOUR: Après avoir désactivé l'exclusion des dépendances de développement, empaquetant en utilisant serverless package
et examinant le fichier zip développé sans serveur crée, j'ai découvert que les tailles de fichier des fichiers .o et .a sont différentes dans la version empaquetée par rapport à la original. Est-ce normal?
vos bibliothèques natives sont .so? –
Je ne pense pas que le problème soit lié aux bibliothèques elles-mêmes, mais plutôt à l'exécution de 'serverless deploy' comme cela fonctionne si je les copie manuellement. – arvinkx
Je vois ça aussi. Le test avec un fichier d'image dans un module de noeud, 'packageless server' suivi d'un dézippage produit une image que je ne peux pas ouvrir, alors que zipping et unzipping fonctionne bien comme prévu. –