11

コンパイル済みの .NET アセンブリ (-ies) をアップロードし、コードを Azure Functions として実行するにはどうすればよいですか?

カスタム アセンブリ内に含まれ、単体テストなどでカバーされる複雑なドメイン ロジックを実行する方法を探しています。

このコードにはどのような制限がありますか? たとえば、リモート データ ストア、ネットワークなどにアクセスします。

4

3 に答える 3

17

更新: 以下の回答はまだ正しい (まだ機能する) が、プリコンパイル済み関数のファースト クラス サポートも追加されました。詳細については、wiki ページを参照してください。

ドキュメント (ここにリンク) では、次の構文を使用して C# 関数から外部ライブラリと Nuget パッケージを参照する方法について説明しています。#r

#r "System.Web.Http"

using System.Net;
using System.Net.Http;
using System.Threading.Tasks;

public static Task<HttpResponseMessage> Run(HttpRequestMessage req)

これに関する追加の詳細は、この SO 投稿で確認できます。

カスタム実行可能ファイルをデプロイして、Azure 関数から呼び出すこともできます。たとえば、Windows BAT テンプレートから開始する場合、それを使用して exe を呼び出すことができます。これは私たちのレポにあるサンプルで、画像のサイズ変更の例を示しています。このサンプルには、新しい画像が BLOB コンテナーにアップロードされるたびにトリガーされる BAT スクリプトがあり、スクリプトはResizer.exeサイズ変更を行うツールを呼び出します。

.\Resizer\Resizer.exe %original% %resized% 200

制限については、すべての Azure Functions コードがApp Service サンドボックスで実行されます。その制限については、こちら で説明されています。

于 2016-04-05T21:24:55.107 に答える
3

コンパイル済みの .NET アセンブリを Azure 関数で実行するには、カスタム dll を FTP で関数ルート フォルダー (bin フォルダー内) にアップロードし、#r を使用して Azure 関数コードから参照することができます。

次に例を示します。「WorkOnImages.dll」という名前の dll が、azure 関数フォルダー内の azure にアップロードされます。

Azure 関数で dll をインポートする

次に、Azure 関数で dll が参照されます。

dllを含める

ソースのブログ記事はこちら

于 2016-05-12T11:58:16.283 に答える
3

VS2017 の Azure Function ツール サポートの欠如、Azure SDK 3.0 との非互換性に落胆した私は、Functions のタオルを投げ捨て、VS2017 と WebJobs SDK を使用するアプローチにフォールバックしようとしていました。

その後、2017 年 3 月 16 日に発表された、Microsoft の Donna Malayeri による優れたブログ投稿で、最も簡単なアプローチが文書化されています。

真のインテリセンス、デバッグ機能など、私が望むすべてのことを実行します。それは素晴らしく、私は振り返りません。

于 2017-03-24T04:34:41.010 に答える