CloudWatch Canary が「Cannot find module '/opt/nodejs/node_modules/myfunction」というエラーで失敗するのはなぜですか?

所要時間1分
0

Amazon CloudWatch Canary が「Cannot find module '/opt/nodejs/node_modules/myfunction」というエラーで失敗するのはなぜですか?

解決方法

関数と依存関係の .zip ファイルを作成するときに CloudWatch で必要な構造を使用しないと、エラーが発生します。エラーメッセージは、次のようになります: Cannot find module '/opt/nodejs/node_modules/myfunction

.zip ファイルは、nodejs/node_modules のファイルパス (nodejs/node_modules/myCanaryFilename.js など) の下に作成する必要があります。.zip ファイルを正しいファイルパスに作成するには、次の操作を行います。

1.    必要な構造を作成します。

mkdir -p /nodejs/node_modules/

2.    CloudWatch Canary 関数を /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 Canary を最初から作成する場合、複数の .js ファイルまたはスクリプトの依存関係がある場合は、すべてのファイルを 1 つの .zip ファイルにバンドルします。次のフォルダ構造を使用します:「nodejs/node_modules」。たとえば、nodejs/node_modules/myCanaryFilename.js ファイルやその他のフォルダおよびファイルです。


関連情報

Canary ファイルのパッケージング

AWS公式
AWS公式更新しました 2年前