Azure Functions のしくみ

完了

ここでは、Azure Functions を使用してサーバーレス アーキテクチャを開発し、それが提供するさまざまな機能実装を利用する方法について学習します。

Azure Functions のしくみについても詳しく学習します。 Azure Functions を最大限に利用して、組織の要件を満たす方法の判断に活用できる情報を示します。

Azure Functions は、記述するコードを少なくできるサーバーレス コンピューティング ソリューションです。 これはサービスとしてのプラットフォームのオファリングであるため、アプリのホスティングについて心配する必要がなく、コストを節約できます。

Azure Functions は、データの処理、システムの統合、モノのインターネット (IoT) の操作、単純な API とマイクロサービスの構築に適した優れたソリューションです。

関数アプリのスケーリング

関数が実行されるコンテキストは、"関数アプリ" と呼ばれます。 関数アプリは、関数のデプロイ、管理、スケーリングの単位です。 関数アプリ内の関数はすべて、同じ設定と接続を共有します。

従量課金と Premium のプランでは、Azure Functions は、関数アプリ インスタンスを追加することによって CPU およびメモリ リソースをスケーリングします。 インスタンスの数は、関数をトリガーするイベントの数に基づいて決定されます。 関数アプリ内のすべての関数が、アプリ インスタンス内のリソースを共有するため、それらは同時にスケーリングします。

Azure Functions の監視

Azure Functions には、関数を監視するための Azure Application Insights とのビルトイン統合機能が用意されています。 Application Insights を使用すると、ログ、パフォーマンス、およびエラー データを収集できます。 これは、パフォーマンスの異常を検出し、問題を診断し、関数がどのように使用されているかをより深く理解するのに役立ちます。

Application Insights インストルメンテーションは、Azure Functions に組み込まれています。 Application Insights の統合により、利用統計情報は、接続されている Application Insights インスタンスに送信されます。 このデータには、Functions ホストによって生成されたログ、関数コードから書き込まれたトレース、およびパフォーマンス データが含まれています。

Note

関数と Functions ホストからのデータに加えて、Functions スケール コントローラーからデータを収集することもできます。

次の図は、関数アプリの Application Insights でデータがどのように表示されるかの例を示しています。

Azure Functions の監視の利用統計情報を示すスクリーンショット

Azure Functions のコンポーネント

次の表では、Azure Functions の主要なコンポーネントについて説明します。

コンポーネント 説明
関数トリガー トリガーは、関数が実行される原因です。 トリガーでは関数を呼び出す方法を定義します。 1 つの関数にはトリガーが厳密に 1 つだけ必要です。
関数のバインディング 関数へのバインディングは、別のリソースを関数に宣言して接続する方法です。バインディングは、入力バインディング、出力バインディング、またはその両方として接続できます。 バインドからのデータは、パラメーターとして関数に提供されます。 バインディングを使用したくない場合や使用できない場合でも、サービスに接続するときに、関数でクライアント SDK を使用できます。
関数ランタイム 現在、Azure Functions では、いくつかのバージョンのランタイム ホストがサポートされています。 Functions は、.NET Core、Node.JavaScript、Java、PowerShell、Python などの、他の多くのランタイムもサポートしています。 開発中は、ローカル コンピューターに Functions ランタイムをインストールし、Azure Functions Core Tools を使用して関数をローカルで実行できます。
API Management (APIM) APIM は、実際の REST API として公開する方法として、HTTP によってトリガーされる関数エンドポイントのセキュリティとルーティングを提供します。
デプロイ スロット Azure Functions デプロイ スロットを使用すると、関数アプリで "スロット" と呼ばれる別のインスタンスを実行できます。 スロットは、一般公開されているエンドポイントを介して公開されるさまざまな環境です。 スロットは、安全な環境で Azure の新しいバージョンの関数をテストし、その新しいバージョンを運用環境にシームレスに入れ替える方法を提供します。
関数アプリの構成 接続文字列、環境変数、およびその他のアプリケーション設定は、 Function App ごとに別に定義されます。 関数アプリの設定値は、コードの中で環境変数として読み込むことができます。

これらのコンポーネントが連携することで、アプリケーション エンジニアと DevOps エンジニアが Azure Functions を使用してサーバーレス アーキテクチャを開発するための完全なエンドツーエンド プラットフォームを提供します。

自分の知識をチェックする

1.

Azure 関数にはいくつのトリガーがありますか?