Pourquoi mon canary Amazon CloudWatch échoue-t-il avec l'erreur « Cannot find module '/opt/nodejs/node_modules/myfunction » (Impossible de trouver le module '/opt/nodejs/node_modules/myfunction) ?
Solution
Vous recevrez une erreur si vous n'utilisez pas la structure requise par CloudWatch lors de la création d'un fichier .zip de votre fonction et de vos dépendances. Le message d'erreur est le suivant : Cannot find module '/opt/nodejs/node_modules/myfunction (Impossible de trouver le module '/opt/nodejs/node_modules/myfunction).
Vous devez créer votre fichier .zip sous le chemin d'accès de fichier nodejs/node_modules (par exemple nodejs/node_modules/myCanaryFilename.js). Afin de créer votre fichier .zip sous le chemin d'accès de fichier approprié, procédez comme suit :
1. Créez la structure requise.
mkdir -p /nodejs/node_modules/
2. Copiez votre fonction canary CloudWatch vers /nodejs/node_modules/.
Remarque : la convention en ce qui concerne le nom du gestionnaire est filename.handler.
cp CanaryFunction.js /nodejs/node_modules/
cp -R /lib /nodejs/node_modules/
3. Compressez votre répertoire sur /nodejs.
zip -r Canary.zip ./nodejs/*
Remarque : lorsque de la création d'un canary Synthetics à partir de zéro, si vous avez plusieurs fichiers .js ou plusieurs dépendances de script, regroupez tous les fichiers dans un seul fichier .zip. Utilisez la structure de dossier suivante : « nodejs/node_modules ». Par exemple, le fichier nodejs/node_modules/myCanaryFilename.js et d'autres dossiers et fichiers.
Informations connexes
Empaquetage de vos fichiers Canary