为什么我的 CloudWatch 金丝雀运行失败并返回“Cannot find module '/opt/nodejs/node_modules/myfunction”错误?

1 分钟阅读
0

为什么我的 Amazon CloudWatch 金丝雀运行失败并返回“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)。要在正确的文件路径下创建 .zip 文件,请执行以下操作:

1.    创建所需的结构。

mkdir -p /nodejs/node_modules/

2.    将您的 CloudWatch 金丝雀函数复制到 /nodejs/node_modules/
注意:处理程序命名规则为 filename.handler(文件名.处理程序)。

cp CanaryFunction.js /nodejs/node_modules/
cp -R /lib /nodejs/node_modules/

3.    在 /nodejs 上压缩您的目录。

zip -r Canary.zip ./nodejs/*

注意:在从头开始创建 Synthetics 金丝雀时,如果您有多个 .js 文件或脚本依赖项,则应将所有文件捆绑到一个 .zip 文件中。使用以下文件夹结构:“nodejs/node_modules”。例如,nodejs/node_modules/myCanaryFilename.js 文件和其他文件夹和文件。


相关信息

打包你的金丝雀文件

AWS 官方
AWS 官方已更新 1 年前