AWS lambdaのNode.jsを18にアップデートする

AWS LambdaのNode.js 16ランタイムは 2024年6月に廃止がアナウンスされている。 (Node.js 16 LTS自体は公式には2023年11月にEOLを迎えている)。 できるだけ早めに Node.js 18 or 20にアプデートしたい。

docs.aws.amazon.com

AWS Lambda固有の事情として、Node.js 18以降では AWS SDK for v2 から AWS SDK for v3にアップデートされる。AWS SDK for v3はmodular architectureに変更となったのでパッケージの利用方法に非互換な修正が入る。これについても合わせて対応する必要がある。

幸いにも、公式にアップデート手順が提供されているのでこれに従えばよい。

aws.amazon.com

// 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);