Alexa-hostedスキルをNode.js 8.10からNode.js 10.xに移行する方法
Gaurav Varshney Jan 14, 2020
Share:
Productivity Node.js Alexa-Hosted Skills
Blog_Header_Post_Img

※このブログはHow to Migrate Alexa-Hosted Skills from Node.js 8.10 to Node.js 10.xの翻訳です。

編集メモ:このブログでは、Alexa-hostedスキルをNode.js 8.10からNode.js 10.xに移行する方法について説明します。独自にホスティングしているスキルをNode.js 8.10からNode.js 10.xに移行するには、 こちらの投稿を参照してください。

2019年末にNode.js 8.10のEOL(サポート終了)についてAWSからメールを受け取ったか、Node.js 10.xへの移行に関する通知が開発者コンソールに表示されたかと思います。Node.js 8.10は2019年12月31日にEOLを迎えたため、今後はNode.jsコミュニティによるバグ修正、セキュリティ更新、またはパフォーマンス改善のサポートはなくなります。2020年2月6日以降、Node.js 8.10を使用しているAWS Lambda関数の更新ができなくなります。つまり、コードはこの日付以降も実行され続けますが、新しい機能を追加したり、バグを修正したりすることはできません。

Alexa-hostedスキルはAWSを使用してスキル用のバックエンドリソースをプロビジョニングします。そのため、2019年末以前に作成されたスキルは移行する必要があります。2020年に作成されたすべてのAlexa-hostedスキルは、既にNode.js 10.xを使用しています。Node.js 8.10で実行されている既存のAlexa-hostedスキルの移行は、1月下旬に開始される予定です。スキルを移行する準備ができたら、開発者コンソールのスキルのコードタブに通知バナーが表示され、次回スキルコードをデプロイするときにNode.js 10.xへのアップグレードが自動的に行われます。

移行しないことを選択した場合、スキルは引き続きNode.js 8.10で実行されます。ただし、通知バナーが表示された後は、Node.js 10.xにアップグレードせずにスキルのコードを変更することはできません。

Node.js 10.xへの移行時にスキルのコードを変更する必要がありますか?

Node.js 10.xのほとんどはマイナーなアップデートです。つまり、Node.jsのバージョンの変更を見て、コードがEOLのAPIを使用していないことを確認する必要があります。Node.jsブログ(英語)で、廃止予定の機能と注目すべきアップデートの一覧を確認できます。次のAPIはEOLを迎えました。

  • net.serverの内部ゲッター/セッター
  • 古い実験的なasync_hooks API

スキル開発者が注目すべきアップデート:

  • 型チェックをするメソッドが追加されました。詳細はutil_typesドキュメント(英語)を参照してください
  • 環境プロセス変数(process.env)は文字列にする必要があります
  • エラーコードが統一され、エラーメッセージの文字列を確認する必要がなくなりました。詳細については Mediumのブログ(英語)を参照してください

ランタイムを変更するときは、EOLのAPIを変更する必要があります。EOLのAPIへの参照を削除したら、コードを保存して再デプロイします。Node.js 10.xに移行されたスキルをテストして、以前と同じように動作していることを確認します。これらの手順を終えたら、移行は完了です。

ASK CLIを使用している場合のアップグレード方法

ASK CLIを使用している場合は、次の手順を実行する必要があります。

  1. Alexa-hostedスキルがアップグレードできる状態になると、ASK開発者コンソールに通知が送信されます。
  2. CLIをアップデートします。最新バージョンを使用するために“npm install-g ask-cli”を実行してください。
  3. CLIで、“ask deploy”コマンドを実行します。
  4. スキルをテストします。

ヘルプが必要ですか?

アップグレードで予期しない問題が発生した場合は、Alexa開発者向け問い合わせ窓口からご連絡ください。

Alexaに関する最新情報をメールで受け取る