📝

Lambda の Node.js ランタイムにデフォルトでインストールされているライブラリを確認してみた

に公開

Lambda の各ランタイムにデフォルトでインストールされているライブラリを確認する方法
上記ブログで Node.js 22.x にデフォルトでインストールされているライブラリを確認しましたが、以下のランタイムでも確認してみました。

  • Node.js 20.x
  • Node.js 18.x
  • Node.js 16.x

1. 関数の作成

Lambda ランタイム - AWS Lambda

Lambda コンソールで非推奨になったランタイムを使用して新しい関数を作成または更新できなくなりました。AWS CLI、AWS SAM、または AWS CloudFormation を使用して関数を引き続き作成および更新できます。

Node.js 20.x のランタイムはコンソールから作成できますが、Node.js 18.x および Node.js 16.x はコンソールから作成できないため AWS CLI で作成しました。

$ cat > index.js << 'EOF'
exports.handler = async (event) => {
    const builtinModules = require('module').builtinModules;

    [...builtinModules].sort().forEach(module => {
        console.log(module);
    });
}
EOF

$ zip function.zip index.js

$ aws lambda create-function \
--function-name node18 \
--runtime nodejs18.x \
--role lambda-role-arn \
--handler index.handler \
--zip-file fileb://function.zip

$ aws lambda create-function \
--function-name node16 \
--runtime nodejs16.x \
--role lambda-role-arn \
--handler index.handler \
--zip-file fileb://function.zip

2. 各ランタイムに共通でインストールされているライブラリ

_http_agent
_http_client
_http_common
_http_incoming
_http_outgoing
_http_server
_stream_duplex
_stream_passthrough
_stream_readable
_stream_transform
_stream_wrap
_stream_writable
_tls_common
_tls_wrap
assert
assert/strict
async_hooks
buffer
child_process
cluster
console
constants
crypto
dgram
diagnostics_channel
dns
dns/promises
domain
events
fs
fs/promises
http
http2
https
inspector
module
net
os
path
path/posix
path/win32
perf_hooks
process
punycode
querystring
readline
repl
stream
stream/consumers
stream/promises
stream/web
string_decoder
sys
timers
timers/promises
tls
trace_events
tty
url
util
util/types
v8
vm
worker_threads
zlib

3. Node.js 18.x にはインストールされていないライブラリ

inspector/promises

4. Node.js 16.x にはインストールされていないライブラリ

readline/promises
wasi
inspector/promises

まとめ

今回は Lambda の Node.js ランタイムにデフォルトでインストールされているライブラリを確認してみました。
どなたかの参考になれば幸いです。

参考資料

Discussion