为什么我的 CloudWatch Canary 运行失败并返回“Cannot find module '/opt/nodejs/node_modules/myfunction”错误?
上次更新时间:2020 年 10 月 16 日
为什么我的 Amazon CloudWatch Canary 运行失败并返回“Cannot find module '/opt/nodejs/node_modules/myfunction”错误?
解决方法
如果您在创建函数和依赖项的 .zip 文件时未使用 CloudWatch 要求的结构,则会遇到错误。错误消息的内容是:Cannot find module '/opt/nodejs/node_modules/myfunction。
您必须在 nodejs/node_modules 文件路径下创建 .zip 文件(例如 nodejs/node_modules/myCanaryFilename.js)。
1. 创建所需的结构。
mkdir -p /nodejs/node_modules/
2. 将您的 CloudWatch Canary 函数复制到 /nodejs/node_modules/。
注意:处理程序命名规则为 文件名.处理程序。
cp CanaryFunction.js /nodejs/node_modules/
cp -R /lib /nodejs/node_modules/
3. 在 /nodejs 上压缩您的目录。
zip -r Canary.zip ./nodejs/*
注意:在从头开始创建 Synthetics Canary 时,如果您有多个 .js 文件或脚本依赖项,则应将所有文件捆绑到一个 .zip 文件中。使用以下文件夹结构:“nodejs/node_modules”。例如,nodejs/node_modules/myCanaryFilename.js 文件和其他文件夹和文件。