Edited at

Azure functions へのdeploy方法とnpm packageのinstall方法

More than 1 year has passed since last update.

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

となります。

azure_functions_local_git_repogitory.png


認証アカウント作成

認証用アカウントが未作成なら、認証用アカウント作成します。

functions_auth_setting.png


プロパティからpush先を確認

上記、ローカルgitとの連携ができていれば、プロパティからgit urlが確認できます。

Azure_functions_git_url.png

これがpush先のURLになります。


ローカルのgit環境構築

ローカルの作業用ディレクトリ内で

git init

git remote add origin 確認したurl

remote addは必須ではないですが、しておくと楽です。


ソースの同期

functions作成時、だいたいの雛形でデフォルトで作られる、index.jsfunction.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接続したらあとは修正ファイルをアップするだけで、デプロイ完了です。

Azure_functions_ftp_property.png

※上記、認証アカウント作成済み前提

このとき アップロード後すぐ反映されることがポイントで、gitによるdeployのときのように、自動でいろんな処理が走らない分、すぐに動作確認できます。

昔ながらの、レンタルサーバにFTPでファイルをアップするデプロイ方法と同じ感覚ですね。

ただその代わりnpm installが実行されないため、packageの追加・修正等の反映は、手動で実施する必要があります。


npm installを手動で実行する方法

functionsに付随するkuduというサービスに、コンソール画面が用意されています。


kudu console

ポータルのfunctionsを選んだら、Function Appの設定 -> Kuduに移動

Azure_functions_to_kudu.png

そうすると別タブでKuduのコンソール画面に移動します。

Azure_kudu_console.png

ここでは、簡単な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から手動で叩く