AWS LambdaのNode.js 16ランタイムは 2024年6月に廃止がアナウンスされている。 (Node.js 16 LTS自体は公式には2023年11月にEOLを迎えている)。 できるだけ早めに Node.js 18 or 20にアプデートしたい。
AWS Lambda固有の事情として、Node.js 18以降では AWS SDK for v2 から AWS SDK for v3にアップデートされる。AWS SDK for v3はmodular architectureに変更となったのでパッケージの利用方法に非互換な修正が入る。これについても合わせて対応する必要がある。
幸いにも、公式にアップデート手順が提供されているのでこれに従えばよい。
// AWS SDK for Javascript v2 const AWS = require("aws-sdk"); const s3Client = new AWS.S3({}); await s3Client.createBucket(params).promise();
// AWS SDK for Javascript v3 const { S3 } = require("@aws-sdk/client-s3"); const s3Client = new S3({}); await s3Client.createBucket(params);