Azure Functions を使用したサーバーレス REST API

Azure Functions は、サーバーレス REST ベースの API を構築するために使用する不可欠なコンピューティング サービスです。 HTTP トリガーは、ブラウザー、モバイル アプリ、その他のバックエンド サービスなど、クライアントによって呼び出すことができる REST エンドポイントを公開します。 ルートのネイティブ サポートにより、1 つの HTTP トリガー関数で高度に機能する REST API を公開できます。 関数には、特定のクライアントのみにアクセスを制限するための、独自の基本的なキーベースの承認スキームも用意されています。 詳細は、「Azure Functions の HTTP のトリガー」を参照してください

一部のシナリオでは、より複雑な REST 動作のセットをサポートするために API が必要な場合があります。 たとえば、複数の HTTP 関数エンドポイントを 1 つの API に組み合わせる必要がある場合があります。 また、1 つ以上のバックエンド REST ベースのサービスに要求を渡すこともできます。 最後に、API では、その使用を収益化できる高度なセキュリティが必要になる場合があります。

現在、関数に基づいてより複雑で堅牢な API を構築するための推奨されるアプローチは、Azure API Management によって提供される包括的な API サービスを使用することです。 API Management では、ポリシーベースのモデルを使用して、ルーティング、セキュリティ、および OpenAPI 統合を制御できます。 また、レート制限による収益化などの高度なポリシーもサポートしています。 以前のバージョンの Functions ランタイムでは、従来の Functions プロキシ機能が使用されました。

重要

Azure Functions プロキシは、Azure Functions ランタイムのバージョン 1.x から 3.x 用のレガシ機能です。 プロキシのサポートは、バージョン 4.x で再有効化され、関数アプリを最新のランタイム バージョンに正常にアップグレードできます。 できるだけ早く、関数アプリと Azure API Management の統合に切り替える必要があります。 API Management では、Functions ベースの API の定義、セキュリティ保護、管理、収益化のためのより完全な機能セットを利用できます。 詳しくは、「API Management 統合」をご覧ください。

Functions バージョン 4.x でプロキシのサポートを再度有効にする方法については、「Functions v4.x でプロキシを再度有効にする」を参照してください。

Functions プロキシから API Management への移動

Functions プロキシから API Management を使用する場合は、関数アプリを API Management インスタンスと統合し、前のプロキシと同様に動作するように API Management インスタンスを構成する必要があります。 次のセクションでは、Azure Functions での API Management の使用に役立つ関連記事へのリンクを示します。

プロキシからの移行に課題がある場合、または Azure API Management が特定のシナリオに対処していない場合は、API Management フィードバック フォーラムに要求を投稿してください。

API Management 統合

API Management を使用すると、既存の関数アプリをインポートできます。 インポート後、HTTP によってトリガーされる各関数エンドポイントは、変更および管理できる API になります。 インポート後、API Management を使用して API の OpenAPI 定義ファイルを生成することもできます。 インポート中、admin承認レベルを持つエンドポイントはすべて無視されます。 関数を使用した API Management の詳細については、次の記事をご覧ください。

[アーティクル] 説明
Azure API Management を使用して HTTP エンドポイントからサーバーレス API を公開する Azure portal の既存の関数アプリから新しい API Management インスタンスを作成する方法について説明します。 すべての言語をサポートします。
Azure Functions と API Management 統合を使用して Visual Studio でサーバーレス API を作成する Visual Studio を使用して、OpenAPI 拡張機能を使用する C# プロジェクトを作成する方法について説明します。 OpenAPI 拡張機能を使用すると、C# コードに属性を直接適用することで、.NET API を定義できます。
クイック スタート」を参照してください。Azure portal を使用して新しい Azure API Management サービス インスタンスを作成する ポータルで新しい API Management インスタンスを作成します。 API Management インスタンスを作成後、関数アプリに接続できます。 ポータル以外のその他の作成方法がサポートされています。
Azure API Management で Azure Function App を API としてインポートする 既存の関数アプリをインポートして、既存の HTTP トリガー エンドポイントをマネージド API として公開する方法を示します。 この記事では、新しい API の作成と既存のマネージド API へのエンドポイントの追加の両方をサポートしています。

API Management を使用して関数アプリ エンドポイントを公開した後、次の記事では、API Management インスタンスで Functions ベースの API を管理する方法に関する一般的な情報を提供します。

[アーティクル] 説明
API の編集 API Management でホストされている既存の API を操作する方法について説明します。
Azure API Management のポリシー API Management パブリッシャーは、ポリシーを使用した構成で API の動作を変更できます。 API の要求または応答に対して順番に実行される一連のステートメントが集まってポリシーが形成されます。
API Management ポリシー リファレンス サポートされているすべての API Management ポリシーの詳細を参照します。
API Management ポリシーのサンプル 主要なシナリオで API Management ポリシーを使用したサンプルの便利なコレクション。

レガシ Functions プロキシ

従来の Functions プロキシ機能 には、バージョン 3.x 以前のバージョンの Functions ランタイム用の一連の基本的な API 機能も用意されています。

重要

Azure Functions プロキシは、Azure Functions ランタイムのバージョン 1.x から 3.x 用のレガシ機能です。 プロキシのサポートは、バージョン 4.x で再有効化され、関数アプリを最新のランタイム バージョンに正常にアップグレードできます。 できるだけ早く、関数アプリと Azure API Management の統合に切り替える必要があります。 API Management では、Functions ベースの API の定義、セキュリティ保護、管理、収益化のためのより完全な機能セットを利用できます。 詳しくは、「API Management 統合」をご覧ください。

Functions バージョン 4.x でプロキシのサポートを再度有効にする方法については、「Functions v4.x でプロキシを再度有効にする」を参照してください。

API Management を使用して同等のタスクを実行する方法に関する基本的なヒントが、Functions プロキシの記事に追加されました。 現在、既存の Functions プロキシの実装を API Management に移行するためのドキュメントやツールはありません。

次のステップ