Node.jsをランタイムにしたLambda関数では、非推奨のメソッドを使うと以下のようなメッセージがログに出力されます。
2024-12-12T12:12:12.012Z 8162d561-25b2-4259-8b90-d9bbf55e608f ERROR (node:2) [DEP0005] DeprecationWarning: Buffer() is deprecated due to security and usability issues. Please use the Buffer.alloc(), Buffer.allocUnsafe(), or Buffer.from() methods instead. (Use `node --trace-deprecation ...` to show where the warning was created)
開発環境であればこのログはありがたいですが、場合によってはこのログが邪魔くさいことがあります。
このような非推奨メッセージのログは、Node.js CLI optionsの--no-deprecation
を使うことで消すことができます。
Command-line API | Node.js v22.12.0 Documentation
Node.js CLI options
CLI optionsは、Node.jsを実行するときに何かしらの特性を与えるオプションです。
このオプションはめちゃくちゃ色々あります。今回使う非推奨メッセージをログ出力させない--no-deprecation
以外にも、
process.title
に値を格納する--title
や、
ファイルの変更によってリスタートする--watch
など有用なものもあります。
使い方は、2通りあります。
nodeコマンドのオプションとして渡す方法
$ node --no-deprecation --title=my_title index.js
環境変数として渡す方法
$ NODE_OPTIONS='--no-deprecation --title=my_title' node index.js
Lambda関数にCLI optionsを渡すには環境変数を使う
Lambda関数ではnodeコマンドのオプションとして渡すことはできないため、環境変数として渡します。
環境変数のキーはNODE_OPTIONS
、値は--no-deprecation
です。
以下のコードをLambda関数で実行してログを確認してみました
console.log("title is", process.title); new Buffer(16);
環境変数に何も設定しない場合
以下のログが出力されました。
START RequestId: 8162d561-25b2-4259-8b90-d9bbf55e608f Version: $LATEST 2024-12-12T12:12:12.000Z 8162d561-25b2-4259-8b90-d9bbf55e608f INFO title is /var/lang/bin/node 2024-12-12T12:12:12.012Z 8162d561-25b2-4259-8b90-d9bbf55e608f ERROR (node:2) [DEP0005] DeprecationWarning: Buffer() is deprecated due to security and usability issues. Please use the Buffer.alloc(), Buffer.allocUnsafe(), or Buffer.from() methods instead. (Use `node --trace-deprecation ...` to show where the warning was created) END RequestId: 8162d561-25b2-4259-8b90-d9bbf55e608f REPORT RequestId: 8162d561-25b2-4259-8b90-d9bbf55e608f Duration: 114.25 ms Billed Duration: 115 ms Memory Size: 128 MB Max Memory Used: 71 MB Init Duration: 132.51 ms
--title
を使わないと/var/lang/bin/node
というnodeコマンドのフルパスが表示されるんですね。
そして、非推奨になっているBufferのコンストラクタについてのメッセージが表示されています。
また、連続して実行すると、以下のように非推奨メッセージは表示されませんでした。 どうやら、コールドスタートするときに非推奨メッセージが出力され、ホットスタートでは出力されないようです。
2024-12-12T12:21:21.000Z 6f05e8bb-8e35-4734-87fa-e7d5abac49e4 INFO title is /var/lang/bin/node START RequestId: 6f05e8bb-8e35-4734-87fa-e7d5abac49e4 Version: $LATEST END RequestId: 6f05e8bb-8e35-4734-87fa-e7d5abac49e4 REPORT RequestId: 6f05e8bb-8e35-4734-87fa-e7d5abac49e4 Duration: 2.20 ms Billed Duration: 3 ms Memory Size: 128 MB Max Memory Used: 71 MB
環境変数を設定した場合
環境変数にキーはNODE_OPTIONS
、値は--no-deprecation --title=my_title
としました。
START RequestId: be0347a8-1c20-4ace-9828-df5ea4458494 Version: $LATEST 2024-12-12T15:43:54.427Z be0347a8-1c20-4ace-9828-df5ea4458494 INFO title is my_title END RequestId: be0347a8-1c20-4ace-9828-df5ea4458494 REPORT RequestId: be0347a8-1c20-4ace-9828-df5ea4458494 Duration: 78.65 ms Billed Duration: 79 ms Memory Size: 128 MB Max Memory Used: 71 MB Init Duration: 132.04 ms