記事種別
製品・サービスのオペレーションに関する記事であるとともに、製品・サービスのライフサイクルに関する記事です。
想定の読者層
Twilio Functionsを直近でご利用あるいは今後ご利用予定のお客様を念頭に置いております。
ご理解いただきたい内容
Functions機能に関連し、Twilioではそのランタイム環境を業界標準に照らし合わせて常に最新にするよう心がけています。OpenJS財団のサポートスケジュールによると、Node.js v12は2022年4月30日にサポート期限を迎えます。(日時については、明記ない限り米国時間となります。) これを受け、Twilio Functionsにおいても、そのサポート(および動作)が2022年4月30日に終了致します。
ご対処いただきたい項目
2022年4月30日までに(Twilio Functionsとしての)現行バージョンであるNode.js v14でテストし、再デプロイをお願いいたします。この日以降にFunctionsを変更した場合、Node.js v14に対してデプロイされます。他に変更を加える予定がない場合でも、前もってNode.js v14にアップグレードすることをお勧めしますが、新しいNode.jsのバージョンv14に対してFunctionsが実行されるよう構成するには、実際にはデプロイの実行が必要となります。
動作対象のNode環境のバージョンが変更となるのは、現時点では以下のいずれかを行った場合となることにご留意ください。
- Twilioコンソール上 ⇒ Functionsの画面内 ⇒ [Dependencies] タブにおいて明示的に設定変更を加える
- Twilio CLIのサーバーレスツールキットでフラグ ‘runtime’ を用いる (例: "twilio serverless:deploy --runtime node14")
- ビルドする(Buildリソースを作成する)際に、‘runtime’ パラメータに明示的に所望バージョンを記載する (例: ““runtime”: “node14””)
ランタイム時のNodeバージョンを明示的に指定しない場合、デフォルトでNode.js v14を利用します。(サービスにデプロイされている以前のビルドが存在しない前提。) サービスにデプロイされているビルドが存在する場合、最後に成功したデプロイにおいて利用されたNodeバージョンが利用されます。
サービス(Service)内の依存関係がNode.js 14でサポートされているか確認することが重要です。Node.js v12からNode.js v14へのアップグレードにあたり必要な構文の変更はありませんが、npmの依存関係や、Node.jsの公式ドキュメントで非推奨とマーキングされ、その後削除された機能はアップグレードにあたって影響を受ける可能性があります。
詳細については、Twilioのドキュメント「Runtime Node.js v14 upgrade (英語)」を参照してください。
対処しなかった場合の影響
現時点でデプロイ済みのFunctionsコードについては、コードロジックに変更が加えられない限りにおいて、Node.js v12との組み合わせで動作し続けます。2022年4月30日以降にFunctionsをデプロイした場合、Node.js v12を指定したデプロイはすべて失敗します。Twilio Functionsには「Functions (Classic)」も存在しますが、このケースにおける新しいデプロイでも同様に自動的にNode.js v14が使用されます。
すべてのお客様において、Node.js v14へのアップグレードをお勧めいたします。
移行(テスト/再デプロイ)の具体的手順
Functions (Classic) を利用している場合
アップグレードする最も簡単な方法は、Functionsの新エディタ(コンソール画面上の“Services”側)を利用することです。
- Functionsのサービスを新規作成します。(⇒ 新エディタを利用する準備が整います。)
- アップグレード対象のFunctionsコードを、Functions (Classic) 側から新規作成したサービス側へ(新たなFunctions要素として)コピペします。(また、環境変数や依存関係を、従来の設定内容に基づき再設定します。)
- 新たなFunctions要素を [Deploy All] ボタンを利用してデプロイします。デプロイにあたって、[Dependencies] タブの [Node Version] ドロップダウンで “Node v14” を選択することを忘れないでください。
- 仮にNode.js v12との組み合わせでの検証を行いたい場合(例: v14への移行過程での比較作業)、[Dependencies] タブの [Node Version] ドロップダウンで “Node v12” を選択し、[Deploy All] ボタンを押して再デプロイしてください。
- Functions (Classic) 側のデプロイが有効な状況のまま、この移行・テスト作業を進めてください。動作検証が完了した段階で、Node.js v14の下にデプロイされた、新規サービス側のFunctions要素を商用版として公開できます。
仮に Functions (Classic) 側のランタイム環境を変更したい場合、サポート部門までお問い合わせください。(アカウントSID情報が必要となります。)
FunctionsのUI Editor (画面エディタ)、API、サーバレス・ツールキットを利用する方法
Twilioのドキュメント「Runtime Node.js v14 upgrade(英語)」を参照してください。
最後に
Twilio FunctionsにおけるNode.jsバージョンの対応・非対応は、Node.jsに関するOpenJS財団のサポートスケジュール(英語)をふまえながら、以前そして今回の対応・非対応と同じようなスケジュール感で進められる予定です。(「以前」については、以下「参考情報」のセクションを参照ください。)したがって、Node.js v14が2023年4月30日にサポート期限を迎え、Twilio Functionsにおいて非対応となる方向性であることが想定されます。
Twilio FunctionsにおけるNode.js v16への対応が2022年のいつ頃リリースされるかは、該当のchangelog記載を定期的に参照ください。皆さまご自身のペースで同様のアップグレードを行えるよう、ご計画いただけますと幸いです。
ご不明な点がございましたら、お手数ではございますがサポート部門までお問い合わせください。
参考情報
- 約1年前に、同様趣旨からのランタイム環境更新のお願いをしており、参考までに掲載いたします。(「Twilio FunctionsのNodeランタイム環境のバージョン更新 (v12 vs v10)」)
改訂履歴
初版: 2022/4/1 JST