Blogical

AWS/Salesforceを中心に様々な情報を配信していきます(/・ω・)/

【!注意!】AWS Lambda で Node.js 8.10 が使えなくなります

こんにちは、ロジカル・アーツの井川です。

AWS LambdaでNode.js 8.10を使用されている場合はご注意いただきたいお知らせがあります!
AWS LambdaでNode.js 8.10のサポートが2019年12月31日に終了し、利用を制限するとのことです。
制限の具体的なスケジュールやNode.jsの新しいバージョンについて情報をまとめておきたいと思います。

使えなくなるスケジュール

以下はAWSから案内のあった内容の抜粋です。

For Node.js 8.x, there will be 2 stages to the runtime deprecation process:

  1. Disable Function Create – Beginning January 6, 2020, customers will no longer be able to create functions using Node.js 8.10

  2. Disable Function Update – Beginning February 3, 2020, customers will no longer be able to update functions using Node.js 8.10

After this period, both function creation and updates will be disabled permanently. However, existing Node 8.x functions will still be available > to process invocation events.

内容は利用制限のスケジュールで、時系列にまとめると以下のようになります。

2020年1月6日:Node.js 8.10を使用した関数の新規作成ができなくなる
2020年2月3日:Node.js 8.10を使用した既存の関数の更新ができなくなる

ただし、関数の呼び出しは引き続き実行可能のようなので、安心しました!

リリーススケジュール

以下はGitHubで公開されているNode.jsのリリーススケジュールです。 (2019年11月時点)

Release Status Codename Initial Release Active LTS Start Maintenance Start End-of-life
8.x Maintenance LTS Carbon 2017-05-30 2017-10-31 2019-01-01 December 2019
10.x Active LTS Dubnium 2018-04-24 2018-10-30 April 2020 April 2021
12.x Active LTS Erbium 2019-04-23 2019-10-21 October 2020 April 2022
13.x Current 2019-10-22 June 2020
14.x Pending April 2020 October 2020 October 2021 April 2023

github.com

2019年11月時点の最新版は13.xで、安定版は12.xと10.xです。
AWS Lambdaでは12.xと10.xのランタイムを選択することができます。

それぞれ特徴は以下があります。

  • Node.js 10.x

    • Node.js API(N-API)が正式サポート
    • Assert、Buffer、Crypto、EventEmitter、Streams、Timersなどで細かな機能強化
    • trace_eventsトップレベルモジュールが加わり、ランタイムでtrace eventカテゴリの有効/無効化ができるように
    • エラー処理、性能の強化
    • assert.fail()など多数のAPIが非推奨に
  • Node.js 12.x

    • JavaScriptエンジンのV8が「V8 7.4」にアップグレードされ、JavaScriptのパースが高速に
    • Asyncのスタックトレースが可能に
    • 引数のミスマッチ時のコールが高速になる
    • デフォルトのヒープサイズが700MBから1400MBへ引き上げ
    • TLS 1.3のサポート
    • デフォルトのHTTPパーサーがllhttpになったことでテストやメンテナンスが容易
    • ビルトインライブラリのコードキャッシュなどにより起動が高速化
    • ECMAScript 6のModule機能が実験的に実装

10.xを選択する理由が無ければ、機能とサポート期間が充実している12.xで作成するのが良さそうですね!

まとめ

今回はNode.jsについてのお知らせでしたが、他のランタイムも同様にサポート期限が設定されています。この機会にサポート終了日を把握しておくと余裕を持って計画できますね。
どのバージョンに更新するかライフサイクルと相談しながら対応していきましょう。

参考リンク