Twilio FunctionsでNode v10終了だって!?


Twilio Functionでデプロイエラーが…!

とあるプロジェクトで、今日(2021/05/06)デプロイしたらエラーが出ました
先月テスト環境でちゃんとリリース確認までしてたのに…!

エラー内容

unsupported runtime node10

なんじゃこりゃ~

リリース時に急に謎エラー出たら焦ります…

Nodeのバージョンに問題が?

エラー内容を見ると、単純にNode v10はサポートしてないぜ。ってことなんでしょうけど
唐突にそんなこと言われても感が。

Google先生お助け~


Twilio公式でこんな記事を見つけました

ご理解いただきたい内容
Functions機能に関連し、Twilioではそのランタイム環境を業界標準に照らし合わせて常に最新にするよう心がけています。OpenJS財団のサポートスケジュールによると、 Node v10は2021年4月30日にサポート期限を迎えます。 (日時については、明記ない限り米国時間となります。)

ご対処いただきたい項目
皆さまのFunctionsコードがNode v12との組み合わせで動作するよう、 Node v12への移行(テストおよび再デプロイ)を2021年4月30日までに完了させてください。

まじすか

めちゃめちゃドンピシャなタイミングでした。
というか全然知りませんでした。。ちゃんと公式の案内は見るようにしないとダメですね

Nodeのバージョンを上げます

とりあえずローカルのバージョンも10なので、12に上げます。
今もう最新はv16なんですね。

v12の最新版をゲット&インストール

Twilio Function側の設定

先ほどの記事に書いてある通りです。
私はクラシックではなくサーバーレスの方なのでそちらを参照しました。

  • バージョン指定を"10"から"12"に変更
package.json
    "engines": {
        "node": "12"
    }
  • プラグインアップデート
twilio plugins:update
  • 次に、前から警告出てたのに放置してました(笑)、twilio-cliのバージョンアップ

» Warning: twilio-cli update available from 2.18.0 to 2.23.0.

npm install twilio-cli@latest -g
  • デプロイコマンドの変更

デプロイ時のコマンドを下記に変更(元は twilio-run deploy だった)

- twilio-run deploy
+ twilio serverless:deploy --runtime node12
package.json
    "scripts": {
        "test": "echo \"Error: no test specified\" && exit 1",
        "start": "twilio-run",
        "deploy": "twilio serverless:deploy --runtime node12 & powershell -file ./after_deploy.ps1"
    },

対応完了

上記を変更して再度デプロイすると、無事デプロイ出来ました

おまけ

node v12にしてから、Flex UIの方をデプロイするとエラーが出ました。
今インストールされているnode-sassのバージョンが、v12に対応してないようでした。

node-sassのバージョンもnode v12に対応したバージョンを入れないとダメなようです。

下記の記事を参考にnode-sassのバージョンもアップしました

こっちはTwilioの問題じゃないので、おまけということで