App Serviceには、いくつかのオプションがあります。Logic AppsやAzure Automationについては触れません。これらもこの分野に関係しています。
Azure Webジョブ
この記事は正直に言って最良の説明ですが、ここで要約します。
オンデマンドWebジョブ(別名)。スケジュールされたWebジョブ(別名)。トリガーされたWebジョブ
トリガーされるWebジョブは、URLが呼び出されたとき、またはscheduleプロパティがschedule.jobに存在するときに1回実行されるWebジョブです。スケジュールされたWebジョブは、スケジュールに基づいてURLを呼び出すために作成されたAzureスケジューラジョブを持つWebジョブですが、前述のように、scheduleプロパティもサポートしています。
概要:
+
実行可能/オンデマンドスクリプト
+
スケジュールされた実行
-
.scmエンドポイント経由でトリガーする必要があります
-
スケーリングは手動です
-
VMは常に必要です
継続的なWebジョブ(非SDK)
これらのジョブは永遠に実行され、クラッシュしたときに起こします。これらを機能させるには、Always Onを有効にする必要があります。つまり、基本層以上で実行する必要があります。
概要:
+
実行可能ファイル/スクリプトは常に実行されています
-
常時オンが必要-基本階層以上
-
VMは常に必要です
WebJobs SDKを使用した継続的なWebジョブ
これらは「機能のWebジョブ」の観点からは何もありません。基本的に、私たちが作成したこの甘いSDKは、単純なトリガーに基づいてコードを実行できるようにするWebジョブをターゲットにしています。これについては後で詳しく説明します。
概要:
+
実行可能ファイル/スクリプトは常に実行されています
+
より豊富なロギング/ダッシュボード
+
長時間実行タスクとともにサポートされるトリガー
-
常時オンが必要-基本階層以上
-
スケーリングは手動で設定できます
-
始めるのは少し面倒かもしれません
-
VMは常に必要です
Azure WebJobs SDK
Azure WebJobs SDKは、WebJobsプラットフォーム機能とは完全に別のSDKです。WebJobで実行するように設計されていますが、実際にはどこでも実行できます。サポートは最善の努力にすぎませんが、私たちには、Workerロールで、さらにはpremまたは他のクラウドでそれらを実行するお客様がいます。
SDKは、イベントに反応してコードを簡単に実行し、サービスなどにバインドすることを目的としています。簡単です。これは一部のドキュメントで正直に説明されていますが、その中心は「イベント」+「コード」の性質です。また、いくつかの優れた拡張性の作業も行いましたが、それは主要な目的の二次的なものです。
概要:
- これらのほとんどは上記のとおりです
+
何でも拡張して実行できます。フルコントロール。
-
HTTPのものは少し不安定ですが、動作します
Azure関数
Azure Functionsは、WebJobs SDKのコアな目的を取り入れ、それをサービスとしてホストし、他の言語で簡単に使い始めることを目的としています。ここでは「サーバーレス」の概念も紹介します。そうすることは非常に理にかなっているためです。SDKがどのようにスケーリングするかを理解しているため、インテリジェントなことができます。
Azure Functionsは、非常に厳密に管理されたエクスペリエンスです。私たちはあなた自身のホストをもたらすことをサポートしていません。現在、カスタム拡張機能はサポートしていませんが、現在調査中です。私たちはあなたができることとできないことについて意見を述べていますが、私たちが可能にすることについては、それらは洗練されており、使いやすく、管理が簡単です。
ただし、Functionsを改善するために行った "フレームワーク"作業のほとんどは、WebJobs SDKを経由します。たとえば、新しいNuGet for WebJobsをアップロードします。これにより、ログ記録の速度が大幅に向上します。これにより、WebJobs SDKユーザーにとってパフォーマンスに大きなメリットがあります。関数を「WebJobs SDK as a Service」として出荷する際に、私たちは実際に多くのエクスペリエンスの問題を改善しました。
関数は私たちの最新かつ最高のものであるため、私はおそらく偏見がありますが、自分の方法で関数のより多くの短所を撮影してください。
私はおそらくもう少し詳細なブログを公開することになるでしょうが、私はこのフォーラムのためにこれをできるだけ簡潔に保つように努めました。