🦾

[CDK] 内部的に自動生成されるLambdaのランタイムバージョンを上げたい

に公開

最初に

日頃CDKを使っていると、内部的に自動生成されてしまうLambdaのCustomResourceがあります。

私の実行環境では、これのランタイムは「node」で、バージョンが「18」であり、以下の通りそろそろあげておかねば、という状況です。(2025/09/09現在)

https://docs.aws.amazon.com/ja_jp/lambda/latest/dg/lambda-runtimes.html#runtimes-supported

上記公式の中にも記載はありますが、「18」の詳細は以下です。

  • 廃止日: 2025/09/01
  • 関数の作成不可: 2025/10/01
  • 関数の更新不可: 2025/11/01

しかし、Lambdaを明示的に定義しているわけではないので、こちらからコードベースで指定することは現実的ではないため、どのようにして、懸念を回避したか備忘録として残しておきます。

では始めます。

結論

使用しているCDKのバージョンを上げるだけです。

最新のバージョンを確認

npm outdated

最新のバージョンをインストール(aws-cdk-libもお忘れなく)

npm i aws-cdk@{version} aws-cdk-lib@{version}

以下にある通り、どうやら特定のバージョン以上にあげれば、自動でバージョンが切り替わった状態のものが作成されるそうです。

https://github.com/aws/aws-cdk/issues/33626#issuecomment-2899229986

ですが。。

早速あげて、diffコマンドで差分を確認し、問題なさそうとなってデプロイしてみると、
うまくデプロイはできたものの、以前に自動生成されていたCustomResourceは残り続けていました。

これはイケていない。

最新バージョンで自動生成されてしまうCustomResourceは、CDKが内部的に理由があって作成しているものなので、容易に消すことは避けるべきですが、残り続けてしまっているものは不要そうです。

消してみた

では、一度消してみようということで、コンソール上から手動で削除しました。

その上で、再度diffコマンドで差分を確認及びデプロイの実行を行ったところ、diffで差分が出ないかつ、デプロイも上手くいき、リソースも問題なく動作することを確認しました。

ちなみに、コンソール上から変更を行なっているため、既存のCustomResourceを何らかの方法でスタック内で参照しているとしたら、デプロイは失敗するはずなのでよしとしました。

まとめ

やはりCDKは良くも悪くもブラックボックス化されているものが多い印象を受けました。
今後も使用していく中で、今回のようなことが起こる可能性は十分あり得そうなので、その時はその時でまた考えていきたいと思います。

今回の記事が誰かのお役に立てれば幸いです。

NCDCエンジニアブログ

Discussion