【Azure】VSCodeからFunctionsへデプロイする
前回、Azure Functionsの開発のための環境としてAzure上にもろもろリソースを作成しました。
今回は、開発したものをデプロイする方法をメモしておきます。
開発云々は、別記事でまとめますが
まずは雑に書いたコードをデプロイし、動かすところから始めます。
内容としては、以下の内容をまとめています。
前回のAzure Functionsの環境構築についてはこちら↓。
VSCodeの拡張機能をインストール
VSCodeでAzure Functions開発を行う場合に、諸々サポートしてくれる拡張機能になります。
前回Web上からリソースの作成を行いましたが、この拡張機能からもリソース作成や管理をできるようになります。
正直多機能すぎて、不要な機能を無効化できた方が安心できる気がするんですが、公式ツールなので入れておきます。
インストール後、Microsoftアカウントへログインすることで、そのアカウントが参照できるAzureリソースへアクセス・管理することができるようになります。
Functionsテンプレートの作成
コマンドパレットから「Azure Functions: Create Functions…」を選択すると、Functionのテンプレートを作成することができます。

「Azure Functions: Create Functions…」を実行すると、次にFunctionsを実行するためのトリガーを選択します。
まずは「HTTP Trigger」を選択するとよいかと思います。

トリガーと種類についてはこの辺を参照ください。
続いて、関数名を入力します。
何でもよいので、このままEnter。

以下のようなテンプレ関数が作成されます。

テンプレ関数は、このまま実行できる形式なので、この関数をそのままデプロイしてみます。
Functions/関数アプリへデプロイする
Functions/関数アプリの状態を確認
事前に関数アプリが有効になっていることを確認しておきましょう。
無効の場合はデプロイができないのでご注意。
以下のように、状態のところが「停止済み」となっていれば、上部メニューから「開始」ボタンを押して動かしておきましょう。

VSCodeからデプロイ
VSCodeに戻り、コマンドパレットから「Azure Functions: Deploy to Function App…」を選択。

選択すると、デプロイ先として
新規にFunction App(管理画面上の関数アプリ)を作成するか、既存のFunctionリソース化を選択できます。
ここでは、前回作った既存のリソースを選択します。

確認画面が表示されます。
内容的には「デプロイするけどいいの?以前のデプロイを上書くのと戻せないよ?」という感じ。
問題なければDeploy。

AzureWebJobsStorageを追記する
おそらく、テンプレ関数を作ったそのままだと以下のようなエラーで失敗するかと思います。
「AzureWebJobsStorage
app setting is required for Run From Package deployment.」と出ていれば
その通りAzureWebJobsStorage
の記述が無いのが要因です。

local.settings.json
にAzureWebJobsStorage
の記述を追加すればOK。
設定値は、Azureストレージの接続文字列を記載すればよい。
Storageアカウントを開き「セキュリティとネットワーク」>「アクセスキー」を開くと以下のような画面になります。
この中の「接続文字列」をコピーして、local.settings.json
のValues.AzureWebJobsStorage
に追記します。

追記後、設定フィルをAzureへアップロードすれば解消します。
アップロード方法は、VSCodeのAzureアイコンからResources > Functions App > <関数アプリ名> > Application Settings
を開き、右クリックして「Upload Local Settings…」をクリックすれば完了です。

再度デプロイして成功すれば完了です。
動作確認
デプロイ後、Webから動作確認しましょう。
関数アプリを開くと、デプロイした関数名が表示されているはずです。
※ 画像では関数アプリを止めていますが、気にしないでください。

デプロイした関数をクリックし「関数のURLの取得」をクリックするとURLを取得できます。
どれでもよいですが、default(ファンクションキー)をコピーしておきます。

コピーしたURLをブラウザに入力して、アクセスすると「Hello, World!」と表示されるはず。
これにて、動作確認完了です。

まとめ
今回は、Azure Functionsへデプロイする方法をメモしておきました。
実際にデプロイして動作確認しましたが、次回はローカルでテストする方法をメモする予定です。
今回は、ここまで。
おわり
ディスカッション
コメント一覧
まだ、コメントがありません