Azure Functionsを使用して、C# 関数で NuGet パッケージを参照および使用できますか?
5 に答える
はい!Azure Functions ポータルは現在、NuGet パッケージを追加および管理するメカニズムを提供していませんが、ランタイムは NuGet 参照をサポートしており、関数をコンパイルおよび実行するときにそれらが正しく使用されるようにします。
依存関係を定義するにはProject.json
、必要な NuGet パッケージ参照を含むファイルを作成する必要があります。Microsoft.ProjectOxford.Face
バージョン 1.1.0への参照を追加する例を次に示します。
{
"frameworks": {
"net46":{
"dependencies": {
"Microsoft.ProjectOxford.Face": "1.1.0"
}
}
}
}
Azure Functions ポータルは、関数ファイルを管理するための便利な方法を提供します。これを使用して、以下を作成 (またはアップロード) できますproject.json
。
- 関数の開発セクションで、ファイルの表示をクリックします
- ファイルを作成するオプションをクリックします (
project.json
マシンに以前に作成したファイルがある場合は、ファイルをアップロードするオプションをクリックすることもできます)。 - ファイルに名前を付け、
project.json
パッケージ参照を定義します (上記の例をテンプレートとして使用できます)。
パッケージの復元プロセスが開始され、ログ ウィンドウに次のような出力が表示されます。
2016-04-04T19:02:48.745 Restoring packages.
2016-04-04T19:02:48.745 Starting NuGet restore
2016-04-04T19:02:50.183 MSBuild auto-detection: using msbuild version '14.0' from 'D:\Program Files (x86)\MSBuild\14.0\bin'.
2016-04-04T19:02:50.261 Feeds used:
2016-04-04T19:02:50.261 C:\DWASFiles\Sites\facavalfunctest\LocalAppData\NuGet\Cache
2016-04-04T19:02:50.261 https://api.nuget.org/v3/index.json
2016-04-04T19:02:50.261
2016-04-04T19:02:50.511 Restoring packages for D:\home\site\wwwroot\HttpTriggerCSharp1\Project.json...
2016-04-04T19:02:52.800 Installing Newtonsoft.Json 6.0.8.
2016-04-04T19:02:52.800 Installing Microsoft.ProjectOxford.Face 1.1.0.
2016-04-04T19:02:57.095 All packages are compatible with .NETFramework,Version=v4.6.
2016-04-04T19:02:57.189
2016-04-04T19:02:57.189
2016-04-04T19:02:57.455 Packages restored.
予想どおり、Azure Functions ランタイムはパッケージ アセンブリへの参照を自動的に追加するため#r "AssemblyName"
、using
.参照しました。
追加の展開オプション
Azure Functions は App Services の上に構築されているため、上記の手順の代わりに、標準の Azure Web Apps (Azure Websites) で利用できるすべての優れたデプロイ オプションにアクセスすることもできます。
ここではいくつかの例を示します。
App Service エディター (モナコ) の使用
App Service Editor (Monaco) を使用してブラウザーからファイルを直接管理するには、次のようにします。
- Azure Functions ポータルで、
Function app settings
- [詳細設定]セクションで、[
Go to App Service Settings
Tools
ボタンをクリックします- [開発]の下で、[ App Service Editor ] をクリックします。
- まだ
On
有効になっていない場合はオンにしてクリックしますGo
- 読み込ま
project.json
れたら、ファイルを関数のフォルダー (関数にちなんで名付けられたフォルダー) にドラッグ アンド ドロップします。
SCM (Kudu) エンドポイントの使用
- 案内する:
https://<function_app_name>.scm.azurewebsites.net
- [デバッグ コンソール] > [CMD]をクリックします。
- 案内する
D:\home\site\wwwroot\<function_name>
Project.json
ファイルをフォルダーに (ファイル グリッドに)ドラッグ アンド ドロップします。
FTP
- FTP を構成するには、こちらの手順に従ってください
接続したら (上記の手順に従って)、
Project.json
ファイルを次の場所にコピーします。/site/wwwroot/<function_name>
追加のデプロイ オプションについては、https ://azure.microsoft.com/en-us/documentation/articles/web-sites-deploy/ を参照してください。
継続的インテグレーション
継続的インテグレーションを有効にしてproject.json
、Function App が実行されていないときにファイルを使用して関数をデプロイすると、Function App が初期化されると、パッケージの復元が自動的に行われます。ファイルをソース管理に追加しないことをお勧めします。project.lock.json
プリコンパイル済みアセンブリ
関数はコンパイル済みのアセンブリとして展開することもできます。この場合、すべての依存関係の管理は Visual Studio で処理されます。このオプションは、Visual Studio の任意のバージョンで、またはVisual Studio 2017 Azure Functions Toolsを使用して標準クラス ライブラリとして使用できます。