AzureFunctionをデプロイする方法としてVisualStudioから直接デプロイする方法とAzureFunction上でコードを実際に記載して、それをコピペで他の場所に持っていくぐらいしか知りませんでした
今回は以下のサイトを参考にVisualStudio上で開発したものをZipファイル化してデプロイする方法を紹介します
-
Azure App ServiceではFTPデプロイよりZipデプロイを使おう | cloud.config Tech Blog
AzureエキスパートのFIXERによる技術ブログです。Azure、Microsoft系のソリューションについての最新情 ...
続きを読む
デプロイ用にコンパイルする
VisualStudioでAzureFunctionのプロジェクトを以下の設定で作成したものをデプロイします
設定項目名 | 設定値 |
Function worker | .Net 6.0 |
Function | Http trigger |
ランタイム ストレージアカウントに Azureite を使用する | はい(チェックあり) |
Authorization level | Function |
「ツール」>「NuGetパッケージマネージャー」>「パッケージマネージャーコンソール」を選択します
VisualStudio上の下部にコンソールが出現するのでそこに下記コマンドを入力して実行します
使用するコマンドは用途によって適宜変えてください。コマンドについては以下のMSサイトを参考にしてください
dotnet publish -c Release -p:UseAppHost=false
-
.NET CLI を使用してアプリを公開する - .NET | Microsoft Learn
.NET CLI コマンドを使用して .NET アプリケーションを公開する方法について説明します。
続きを読む
文字化けがありますが、問題なく「bin\Release\net6.0」配下に様々なファイルが作成されています(net6.0は作成したバージョンによって変わります)
Zipファイルを作成する
上記でビルドしたものをアップロードするために、Zipファイル化します
パッケージマネージャーコンソール上で以下のコマンドをそれぞれ実行します
cd .\bin\Release\net6.0
Compress-Archive -Path * -DestinationPath Deploy.zip
コマンドを実行すると「bin\Release\net6.0」配下に「Deploy.zip」というファイルが作成されているのでこれをアップロードしてデプロイします
AzureFunctionのデプロイサイトへ
あらかじめ関数アプリをAzure上で以下で作成しておきます
設定項目名 | 設定値 |
関数アプリ名 | 適宜変更してください |
コードまたはコンテナーイメージをデプロイしますか? | コード |
ランタイムスタック | .NET |
バージョン | 6 |
地域 | JapanEast(個人によって変わると思います) |
オペレーティングシステム | Windows |
Azure上から「AppService」>「対象となる関数アプリ」>「高度なツール」を選択し、「移動→」ボタンをクリックします
別タブで以下のWebサイトが開くのでURL欄の末尾に「/ZipDeployUI」を追加してEnterキーを押すと以下の画像のサイトに遷移します
AzureFunctionへデプロイする
先ほど作成したZipファイルを先ほどのサイトにアップロードします
以下の画像で赤枠で囲っているあたりにZipファイルを持っていくとアップロードできます
デプロイが正常に完了すると以下の画像のように「Deployment successful.」と表示されます
デプロイした内容を見てみる
デプロイ先とした関数アプリ上に関数が作成されていることが確認でき、Azure上の「コードとテスト」から問題なく実行できました
デプロイ時の注意点
VisualStudio上で作成した環境変数は反映されていないのでAzure上で再度作成する必要があるので注意が必要です