このエントリはServerless2 Advent Calendar 2018の17日目のエントリとなります。
半月ほど前業務で、稼働中のAzure Functions v1 + Node.jsなアプリケーションをAzure Functions v2に移行する作業を行いました。
その際、今後も似たような移行作業があり得そうだと考え、この作業をざっくりこなしてくれるスクリプトを作りました。それがytnobody/azure-func-migrate-nodeです。ちなみにPerl製ではなくNode.js製です。
如何せんやっつけで作ったスクリプトですので、漏れ・抜けなどはあるかもしれませんが、お手すきの際にでもpull-reqしてくださると幸甚です。
移行のために最低限必要な処理
大きく分けて、以下の作業が必要となります
- bindingsに対応したextensionsをインストールする
- ランタイムバージョンを2.0に設定する
bindingsに対応したextensionsをインストールする
実際のextensionsインストール作業はfunc extensions install
に委譲しているのですが、これまでv1で使っていたbindingsに相対するv2 extensionsを検出するロジックは作成しました。
なお、v1では"type": "documntDB"
と指定していた箇所は"type": "cosmosDB"
に変更する必要がありますので、その対応も行っています。
ランタイムバージョンを2.0に設定する
これもロジックを作りました。
まとめ
ざっくりと移行スクリプトを作りましたので、公開しました。が、だいぶやっつけで作ってありますので、適宜pull-reqをしてくださると幸甚です。