Lambda ランタイム Node.js 18 実行時「exports is not defined in ES module scope」のエラーが発生します。

質問・問題

Lambda ランタイム Node.js 18 実行時「exports is not defined in ES module scope」のエラーが発生します。

回答・解決方法

ES モジュール方式のファイルに、CommonJS モジュール方式のコードを記述しているのが原因です。
ファイル拡張子を「.mjs」から「.js」に変更いただくか、ES モジュール方式のコードに修正してください。

Lambda はデフォルトで、ファイル拡張子「.js」を CommonJS モジュール、「.mjs」を ES モジュールとして扱い、Node.js 18 で新規作成された Lambda 関数は「.mjs」で作成されます。

 

【参考記事】
Node.js の AWS Lambda 関数ハンドラー
https://docs.aws.amazon.com/ja_jp/lambda/latest/dg/nodejs-handler.html

 

ES モジュールとしての関数ハンドラーの指定
https://docs.aws.amazon.com/ja_jp/lambda/latest/dg/lambda-nodejs.html#designate-es-module

 

この記事は役に立ちましたか?
0人中0人がこの記事が役に立ったと言っています
他にご質問がございましたら、リクエストを送信してください