LoginSignup
7
5

More than 5 years have passed since last update.

Azure Functionsで npmモジュールを使う

Last updated at Posted at 2016-10-21

2016/11/16 追記
App Service Planを"動的"にして動作させる場合、
比較的大きなnpmモジュールをロードする場合に、上手くロードできない問題がある模様。
プランを動的ではなく、"Classic"にして試したところKuduからCMDで問題なくnpm install出来ている。


思いの外ハマったのでメモ。
まずここを読んだ。

Azure Functions NodeJS 開発者向けリファレンス
https://azure.microsoft.com/ja-jp/documentation/articles/functions-reference-node/

ここには、

関数アプリのファイル システムの関数のフォルダーに package.json ファイルをアップロードすることで関数にパッケージを追加できます。

と書かれている。

package.jsonをアップロードして、実行すれば裏でよしなにnpm installしてくれるのかと思ったが、そんなことはない。
Kuduへ飛んで、npm installしてやる必要がある。
手順については、上述の Azure Functions NodeJS 開発者向けリファレンス に以下のように記載がある。

関数アプリの SCM (Kudu) コマンド ライン インターフェイスで npm install を使用することもできます。
1.https://.scm.azurewebsites.net に移動します。
2.[デバッグ コンソール]、[CMD] の順にクリックします。
3.D:\home\site\wwwroot に移動します。
4.npm install を実行します。

ここで、CMDではなく、PowerShellを選んで npm installする
CMDを使うとうまくインストールできなかった


その他のハマりポイント

Azure Functions developer reference (Azure Functions 開発者向けリファレンス)
https://azure.microsoft.com/ja-jp/documentation/articles/functions-reference/#fileupdate

ここに、

関数アプリの SCM (Kudu) エンドポイントを使用するには
1.https://.scm.azurewebsites.net に移動します。
2.[デバッグ コンソール]、[CMD] の順にクリックします。
3.D:\home\site\wwwroot に移動し、host.json または D:\home\site\wwwroot を更新し、関数のファイルを更新します。
4.アップロードするファイルをファイル グリッドのフォルダーにドラッグアンドドロップします。ファイルをドロップできるファイル グリッドには 2 つの領域があります。.zip ファイルの場合は、[Drag here to upload and unzip (アップロードして解凍するにはここにドラッグしてください)] というラベルの付いたボックスが表示されます。 他の種類のファイルの場合は、ファイル グリッド内の [unzip (ファイルの解凍)] ボックスの外側にドロップします。

と書かれている。
AWS Lambdaのようにzipを上げてデプロイができるっぽい、と思って試したが、
上げてみると、解凍後、node_modules内部のファイルが不完全になったりする。
zipがうまく解凍できないようだ。

7
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
5