Azure Functions の概要
Azure Functions は、記述するコードと管理するインフラストラクチャを減らし、コストを節約できるサーバーレス ソリューションです。 クラウド インフラストラクチャによって、アプリケーションの実行を維持するために必要な最新のリソースがすべて提供されるので、サーバーのデプロイや管理について心配する必要はありません。
ユーザーは自分にとって最も生産性の高い言語で最も重要なコードに集中し、残りは Azure Functions が処理をします。
Functions のドキュメントで最適なエクスペリエンスを得るには、記事の上部にあるネイティブ Functions 言語の一覧から好みの開発言語を選択してください。
シナリオ
Functions には、追加のコードを記述することなく、関数を他のサービスに接続する、イベントドリブン トリガーとバインドの包括的なセットが用意されています。
以下に示したのは、Functions を特徴づける統合シナリオの一般的な例ですが、"決して網羅的ではありません。"
目的 | 対応方法 |
---|---|
ファイルのアップロードを処理する | BLOB ストレージでファイルがアップロードされたり変更されたりしたときにコードを実行します。 |
データをリアルタイムで処理する | イベント ストリームと IoT ソース ストリームからストレージへの途中でデータをキャプチャして変換します。 |
データ モデルを推論する | キューからテキストをプルし、分析と分類のためにさまざまな AI サービスに提示します。 |
スケジュールされたタスクを実行する | 事前に定義された時間間隔でデータ クリーンアップ コードを実行します。 |
スケーラブルな Web API を構築する | HTTP トリガーを使用して、Web アプリケーション用の一連の REST エンドポイントを実装します。 |
サーバーレス ワークフローを作成する | Durable Functions を使用し、一連の関数からイベントドリブンのワークフローを作成します。 |
データベースの変更に対処する | Azure Cosmos DB でドキュメントが作成または更新されたときにカスタム ロジックを実行します。 |
信頼性の高いメッセージ システムを作成する | Queue Storage、Service Bus、Event Hubs のいずれかを使用してメッセージ キューを処理します。 |
これらのシナリオでは、最新式のアーキテクチャ パターンを使用してイベント駆動型システムを構築できます。 詳細については、「Azure Functions シナリオ」を参照してください。
開発ライフサイクル
Functions では、お気に入りの開発ツールを使用して任意の言語で関数コードを記述し、コードを Azure クラウドにデプロイします。 Functions は、C#、Java、JavaScript、PowerShell、Python での開発にネイティブ サポートを提供し、Rust や Go などのより多くの言語を使用する機能も提供します。
Functions は、Visual Studio、Visual Studio Code、Maven、およびその他の一般的な開発ツールと直接統合され、シームレスなデバッグとデプロイを可能にします。
また、Functions は Azure Monitor および Azure Application Insights と統合され、クラウド内の関数の包括的なランタイム テレメトリと分析を提供します。
ホスティング オプション
Functions には、ビジネス ニーズとアプリケーション ワークロード用にさまざまなホスティング オプションが用意されています。 イベントドリブン スケーリング ホスティング オプションには、実行時間に対してのみ支払う完全なサーバーレス (従量課金プラン) から、最速の応答時間に備えてインスタンスを常にウォームアップしておく (Premium プラン) まであります。
App Service ホスティング リソースが余っている場合は、既存の App Service プランで関数をホストできます。 この種の専用ホスティング プランは、関数から予測可能なスケーリング動作とコストが必要な場合にも適しています。
関数ランタイム環境と依存関係を完全に制御する必要がある場合は、完全にカスタマイズできるコンテナーに関数をデプロイすることもできます。 カスタム コンテナーは、Functions でホストすることも、Azure Container Apps のマイクロサービス アーキテクチャの一部としてデプロイすることも、Kubernetes でセルフホステッドすることもできます。