Azure Functions ソリューションの設計

完了

Azure Functions はサーバーレス アプリケーション プラットフォームです。 Functions は、インフラストラクチャを気にせずに、クラウドで小さなコードを実行する場合に使用します。

Azure Functions について知っておくべきこと

新しいワークロードを構築するための優れたコンピューティング ソリューションにする Azure Functions の利点とシナリオをいくつか確認しましょう。

Flowchart for selecting Azure Functions solutions to build new workloads.

  • Azure Functions により、組み込みのスケーラビリティが提供されます。 使用したリソースの分だけ課金されます。

  • Azure Functions を使えば、任意の言語で関数コードを記述できます。

  • Azure Functions では、次の 2 つの主な方法で "オンデマンドのコンピューティング" がサポートされています。

    • Azure Functions では、すぐに利用できるコード ブロックの中に自分のシステムのロジックを実装することができます。 これらのコード ブロック (関数) は、重要なイベントに応答する必要があるときにいつでも実行できます。

    • 要求が増加したら、Azure Functions では、必要な数のリソースと関数インスタンスで要求を満たすようになります。 要求が完了すると、追加のリソースとアプリケーション インスタンスは自動的に削除されます。

  • Azure Functions は、イベントによってトリガーされる特定の定義可能なアクションを処理するための理想的なソリューションです。 関数では API 呼び出しを処理し、処理されたデータを Azure Cosmos DB に格納できます。 データ転送が行われた後、別の関数で通知をトリガーできます。

    Diagram that shows how Azure Functions responds to API calls and outputs data to Azure Notification Hubs.

Azure Functions を使用するときに考慮すべきこと

Azure Functions を使用するためのベスト プラクティスをいくつか見てみましょう。 これらの提案を考慮するときは、Tailwind Traders インフラストラクチャで Azure Functions を使用する利点について考えてください。

  • 実行時間の長い関数について考える。 予期しないタイムアウトの問題が発生する可能性がある実行時間の長い大きな関数を避けます。 可能な限り、大きな関数は、連携して応答を迅速に返すより小さな関数セットにリファクターします。 既定のタイムアウトは、従量課金プラン関数の場合は 300 秒で、他のプランの場合は 30 分です。

  • Durable Functions について考える。 Durable Functions と小さな関数セットを使用して、構成のタイムアウトの問題を克服します。 Durable Functions を使用すると、ステートフル関数を記述できます。 バックグラウンドでは、関数によって、アプリケーションの状態、チェックポイント、再起動が管理されます。 Durable Functions のアプリケーション パターンの例として、''関数チェーン'' があります。 関数チェーンでは、特定の順序で一連の関数が実行されます。 1 つの関数の出力は、別の関数の入力に適用されます。

  • パフォーマンスやスケーリングについて考える。 異なる読み込みプロファイルを使用して関数をグループ化する方法を計画します。 2 つの関数があるシナリオを考えてみます。 1 つの関数では、キューに入っている何千ものメッセージが処理され、メモリ不足の要件があります。 もう 1 つの関数は、呼び出されるのはごくまれですが、高いメモリ要件があります。 このシナリオでは、各関数に独自のリソース セットがある個別の関数アプリケーションをデプロイできます。 別のリソースとは、関数を個別にスケーリングできることを意味します。

  • 防御関数について考える。 例外を処理するように関数を設計します。 ダウンストリーム サービス、ネットワークの停止、またはメモリの制限により、関数が失敗する可能性があります。 エラーが発生した場合に続行できるように関数を記述します。

  • ストレージ アカウントを共有しないことを考える。 関数アプリケーションごとに別のストレージ アカウントを使って、パフォーマンスを最大化します。 関数アプリを作成する場合、一意のストレージ アカウントに関連付けます。 一意のストレージ アカウントを使用することは、関数によって大量のストレージ トランザクションが生成される場合に重要です。

ビジネス アプリケーション

数分かけて、その他の Azure Functions のベスト プラクティスに関するページを確認してください。

Azure Functions のその他の使用方法については、「コード サンプル」ページを参照してください。