Azure Functions の概要
Azure Functions は、記述するコードと管理するインフラストラクチャを減らし、コストを節約できるサーバーレス ソリューションです。 クラウド インフラストラクチャによって、アプリケーションの実行を維持するために必要な最新のリソースがすべて提供されるので、サーバーのデプロイや管理について心配する必要はありません。
通常、システムは、一連の重大なイベントに対処できるように構築されます。 Web API の構築、データベースの変更への対応、IoT データ ストリームの処理、メッセージ キューの管理など、すべてのアプリケーションには、これらのイベントが発生したときにコードを実行する方法が必要です。
Azure Functions は、コードの実行を開始する機能である "トリガー" と、データの入出力用コードを単純化する機能である "バインド" をサポートしています。 Azure には他にも統合および自動化サービスがあり、いずれも統合の問題を解決し、ビジネス プロセスを自動化するために使用できます。 どのサービスでも入力、アクション、条件、出力を定義できます。
Azure Functions と Azure Logic Apps の比較
Functions と Logic Apps はいずれもサーバーレス ワークロードを可能にする Azure サービスです。 Azure Functions がサーバーレスのコンピューティング サービスであるのに対し、Azure Logic Apps はサーバーレスのワークフロー統合プラットフォームです。 どちらでも複雑な "オーケストレーション" を作成することができます。 オーケストレーションは、Logic Apps において複雑なタスクを遂行するために実行される、"アクション" と呼ばれる関数またはステップの集まりです。
Azure Functions では、コードを記述したり Durable Functions 拡張機能を使用したりすることによって、オーケストレーションを開発します。 Logic Apps では、GUI を使用するか構成ファイルを編集することによってオーケストレーションを作成します。
Functions と Logic Apps の主な違いを次の表に示します。
トピック | Azure Functions | Logic Apps |
---|---|---|
開発 | コード第一 (命令型) | デザイナー第一 (宣言型) |
接続 | ビルトインのバインド (約 10 種類) およびカスタム バインド (コードを記述) | コネクタの豊富なコレクション、Enterprise Integration Pack (B2B のシナリオ向け)、カスタム コネクタの構築 |
アクション | 個々のアクティビティは Azure 関数 (アクティビティ関数のコードを記述する) | 既製のアクションの豊富なコレクション |
Monitoring | Azure Application Insights | Azure portal、Azure Monitor ログ |
管理 | REST API、Visual Studio | Azure portal、REST API、PowerShell、Visual Studio |
実行コンテキスト | Azure、またはローカルで実行されます | Azure、ローカル、またはオンプレミスで実行されます |
Functions と WebJobs の比較
Azure Functions と同様、Azure App Service WebJobs と WebJobs SDK は開発者向けに設計された "コード第一" の統合サービスです。 どちらも Azure App Service の上に構築されたものであり、ソース管理の統合、認証、Application Insights との統合による監視などの機能をサポートします。
Azure Functions は、WebJobs SDK の上に構築されているため、同じイベント トリガーや他の Azure サービスとの接続を数多く共有します。 以下に、Azure Functions を使用するか WebJobs と WebJobs SDK を使用するかの選択において考慮すべき事柄をいくつか示します。
要素 | 関数 | Webjobs SDK での Webjobs |
---|---|---|
サーバーレスのアプリ モデルと自動スケーリング | はい | いいえ |
ブラウザーでの開発とテスト | はい | いいえ |
従量課金制の価格 | はい | いいえ |
Logic Apps との統合 | はい | いいえ |
イベントのトリガー | Timer Azure Storage キューと BLOB Azure Service Bus のキューとトピック Azure Cosmos DB Azure Event Hubs HTTP/WebHook (GitHub Slack) Azure Event Grid |
Timer Azure Storage キューと BLOB Azure Service Bus のキューとトピック Azure Cosmos DB Azure Event Hubs ファイル システム |
Azure Functions は、Azure App Service WebJobs よりも開発者の生産性を向上させます。 また、プログラミング言語、開発環境、Azure サービスの統合、および価格に関して、より多くのオプションが提供されます。 ほとんどの場合、それが最適な選択肢になるでしょう。