Azure functions上でnode.jsを動かせますが、開発していくうえで必要な
- deploy方法
- npm packageのinstall方法
を整理しておきます。
deploy方法
functionsへのdeploy方法は、画像のソースの選択
の一覧にあるだけの方法が用意されており、今回はローカルのgitリポジトリを解説します。
ローカルgit
設定方法は、ポータルの対象のfunctionsを選んだ画面から、(0)Function Appの設定 -> (1)App Serviceの設定に移動 -> (2)デプロイオプション -> (3)ソースの選択 -> (4)ローカルGitリポジトリ -> OK
となります。
###認証アカウント作成
認証用アカウントが未作成なら、認証用アカウント作成します。
###プロパティからpush先を確認
上記、ローカルgitとの連携ができていれば、プロパティからgit urlが確認できます。
これがpush先のURLになります。
###ローカルのgit環境構築
ローカルの作業用ディレクトリ内で
git init
git remote add origin 確認したurl
remote addは必須ではないですが、しておくと楽です。
###ソースの同期
functions作成時、だいたいの雛形でデフォルトで作られる、index.js
とfunction.json
という2ファイルありますが、最初はリポジトリ管理内には存在しません。なので、一旦index.jsは、コピペするなりしてローカルに用意しましょう。
vi index.js
※function.jsonは、直接触るよりもポータルから変更する場合が多いので、最初はリポジトリで管理しなくていいかと思います。
###package.json追加
あとは、適当な修正を加えた後commit & push すれば、デプロイされます。
が、その前にnpm packageインストール用にpackage.jsonを追加しておきましょう。
npm init
###deploy
あとは、commit & push です。
git add .
git commit -m 'comit comment'
git push
これでデプロイされます。
処理フローとしては、git push -> azure上のリポジトリ反映 -> functions上にソース展開 -> npm install
というのが流れになります。
※注意、OSに依存するようなpackageはfunctions上でinstallできない場合があります。ただ、これは後々改善されるかもしれません。
FTP
git連携でも構わないのですが、もっと、修正→動作確認のサイクルを早く回したい場合、FTPによるデプロイがおすすめです。
プロパティからFTP接続情報参照
以下を参考に、FTP接続したらあとは修正ファイルをアップするだけで、デプロイ完了です。
※上記、認証アカウント作成済み前提
このとき アップロード後すぐ反映されることがポイントで、gitによるdeployのときのように、自動でいろんな処理が走らない分、すぐに動作確認できます。
昔ながらの、レンタルサーバにFTPでファイルをアップするデプロイ方法と同じ感覚ですね。
ただその代わりnpm installが実行されないため、packageの追加・修正等の反映は、手動で実施する必要があります。
npm installを手動で実行する方法
functionsに付随するkuduというサービスに、コンソール画面が用意されています。
####kudu console
ポータルのfunctionsを選んだら、Function Appの設定 -> Kuduに移動
ここでは、簡単なlinuxコマンド(cd,ls等)が使えます。画面上側のディレクトリファイルをクリックしながらでもいいのですが、該当の関数(今回はfunc1)まで移動します。
作った関数たちは/site/wwwroot/
内にいるので、
cd site/wwwroot/func1
ここまで移動したら、package.jsonがあることを確認し、
npm install
を実行します。少し時間はかかりますが、packageをinstallしてくれます。
※うまく反映されない場合、node_modulesディレクトリを削除してnpm install し直せば反映される場合があります。
まとめ
- deploy方法としてローカルgitとFTPを紹介
- ローカルgitはpushしたらソースのデプロイ、npm installまでしてくれる
- FTPは、ソースアップしたらすぐ反映される。npm installが必要な時、kudu konsoleから手動で叩く