適用対象: すべての API Management レベル
この記事では、Azure コンテナー アプリを API として Azure API Management にインポートし、Azure portal を使用してインポートされた API をテストする方法について説明します。
注
現在、この機能はワークスペースでは利用できません。
この記事では、次の方法について説明します。
- Web API を公開するコンテナー アプリをインポートする
- Azure portal での API のテスト
API Management を使用してコンテナー アプリを公開する
Azure Container Apps を使うと、複雑なインフラストラクチャを管理することなく、コンテナー化されたアプリをデプロイできます。 API 開発者は、好みのプログラミング言語またはフレームワークを使用してコードを記述し、分散アプリケーション ランタイム (Dapr) を完全にサポートするマイクロサービスを構築し、HTTP トラフィックやその他のイベントに基づいてスケーリングできます。
API Management を使用して、コンテナー アプリでホストされている Web API を公開すると、次の利点が得られます。
- API コンシューマーに公開されているフロントエンドの管理とセキュリティ保護を、バックエンド Web API の管理と監視から切り離します。
- コンテナー アプリとしてホストされている Web API を、他の API と同じ環境で管理します。
- 呼び出しレートの制限など、API の動作を変更する ポリシー を適用します。
- API コンシューマーをカスタマイズ可能な API Management 開発者ポータル に誘導して、API を検出して学習し、アクセスを要求し、API を試すことができます。
詳細については、「API Management について」を参照してください。
OpenAPI 仕様とワイルドカード操作
API Management では、OpenAPI 仕様 (Swagger 定義) を提供するコンテナー アプリのインポートがサポートされています。 OpenAPI 仕様は必要ありませんが、指定することをお勧めします。 API Management では、個々の操作をインポートできます。これにより、各操作の構成を個別に検証、管理、セキュリティ保護、更新できます。
コンテナー アプリで OpenAPI 仕様が公開されている場合、API Management は定義に直接マップする API 操作を作成します。 API Management では、OpenAPI 仕様についていくつかの場所を検索します。
- コンテナー アプリの構成
/openapi.json
/openapi.yml
/swagger/v1/swagger.json
OpenAPI 仕様が提供されない場合、一般的な HTTP 動詞 (GET、PUT など) のワイルドカード操作が API Management によって生成されます。 同じ API Management 機能を引き続き利用できますが、操作は同じ詳細レベルで定義されていません。
どちらの場合も、API をインポートした後に 、操作を編集 したり、API に 追加 したりできます。
例
バックエンド コンテナー アプリでは、次の 2 つの GET 操作がサポートされる場合があります。
https://<app-service>.azurewebsites.net/customer/{id}
https://<app-service>.azurewebsites.net/customers
コンテナー アプリは、 https://<api>.azure-api.net/store
などのパスで API Management サービスにインポートします。 次の表では、OpenAPI 仕様がある場合とない場合のそれぞれについて、API Management にインポートされる操作を示しています。
タイプ | インポートされる操作 | サンプルの要求 |
---|---|---|
OpenAPI の仕様 | GET /customer/{id} GET /customers |
GET https://<api>.azure-api.net/store/customer/1 GET https://<api>.azure-api.net/store/customers |
ワイルドカード | GET /* |
GET https://contosoapi.azure-api.net/store/customer/1 GET https://<api>.azure-api.net/store/customers |
ワイルドカード操作によって、OpenAPI 仕様の操作と同じ要求をバックエンド サービスに対して実行できます。 ただし、OpenAPI が指定された操作は、API Management で個別に管理できます。
前提条件
- Azure API Management インスタンスの作成に関するクイックスタートを完了します。
- サブスクリプションに Web API を公開するコンテナー アプリがあることを確認します。 詳細については、Container Apps のドキュメントを参照してください。
バックエンド API のインポートと発行
Azure portal で API Management サービスに移動し、左側のウィンドウで [API>API] を選択します。
[ Azure リソースから作成] で、[ コンテナー アプリ] を選択します。
[ 参照] を 選択して、サブスクリプション内のコンテナー アプリの一覧を表示します。
コンテナー アプリを選択します。 OpenAPI 定義が選択したコンテナー アプリに関連付けられている場合、API Management はそれをフェッチしてインポートします。 OpenAPI 定義が見つからない場合、API Management では、一般的な HTTP 動詞のワイルドカード操作を生成して API を公開します。
API URL サフィックスを追加します。 サフィックスは、API Management インスタンス内の API を識別する名前です。 API Management インスタンス内で一意である必要があります。
API を製品に関連付けます。 [ 完全] を選択し、[ 製品] で製品を選択します。 この場合、 無制限 の製品が使用されます。 API を公開して開発者が使用できるようにする場合は、それを製品に追加する必要があります。
注
製品 は、1 つ以上の API の関連付けです。 多数の API を組み込み、開発者ポータルを通じてそれらを開発者に提供できます。 開発者は、まず成果物をサブスクライブして API へのアクセス権を取得する必要があります。 サブスクライブすると、その製品内の任意の API に適したサブスクリプション キーが取得されます。 API Management インスタンスを作成した場合は、管理者になっているため、既定ですべての成果物にサブスクライブされます。
一部の価格レベルでは、API Management インスタンスを作成するときに 2 つのサンプル製品が付属しています。
- スターター
- 無制限
他の API 設定を入力します。 これらの値は、API の作成時に設定することも、[ 設定] タブで後で構成することもできます。これらの設定については、 最初の API のインポートと発行 に関するチュートリアルで説明します。
[作成] を選択します。
Azure portal での新しい API のテスト
操作は Azure portal から直接呼び出すことができます。 このメソッドは、API の操作を表示およびテストするための便利な方法です。 開発者ポータルで、または独自の REST クライアント ツールを使用して、API をテストすることもできます。
Azure portal で API をテストするには:
前の手順で作成した API を選択します。
[テスト] タブを選択します。
操作を選択します。
ページに、クエリ パラメーターのフィールドとヘッダーのフィールドが表示されます。 ヘッダーの 1 つが
Ocp-Apim-Subscription-Key
です。 このヘッダーは、API に関連付けられている製品のサブスクリプション キー用です。 API Management インスタンスを作成した場合は管理者であるため、キーは自動的に入力されます。[送信] を選択します。
テストが成功すると、バックエンドから 200 OK といくつかのデータが応答として返されます。
ポータルでワイルドカード操作をテストする
ワイルドカード操作が生成されるとき、操作がバックエンド API に直接マップしない場合があります。 たとえば、API Management にインポートされるワイルドカード GET 操作では、パス /
を既定で使用します。 ただし、バックエンド API では、次のパスで GET 操作をサポートしている場合があります。
/api/TodoItems
/api/TodoItems
パスをテストするには:
作成した API を選択し、操作を選択します。
[テスト] タブを選択します。
[テンプレート パラメーター] で、ワイルドカード (*) 名の横にある値を更新します。 たとえば、「
api/TodoItems
」と入力します。 この値は、ワイルドカード操作のパス/
に追加されます。[送信] を選択します。
その他の API の追加
次のようなさまざまなサービスによって公開された API の中から任意の API を構成できます。
- OpenAPI の仕様
- SOAP API
- GraphQL API
- Azure App Service でホストされる Web アプリ
- Azure Functions (アジュール ファンクションズ)
- Azure Logic Apps
- Azure Service Fabric
注
API をインポートすると、操作が現在の API に追加されます。
既存の API に API を追加するには:
Azure portal で Azure API Management インスタンスに移動します。
[概要] ページで [API] を選択するか、左側のメニューで [API]>[API] の順に選択します。
別の API を追加する API の横にある省略記号 (...) を選択します。
ドロップダウン メニューから [インポート] を選択します。
API のインポート元のサービスを選択します。
関連コンテンツ
- API のインポートの制限事項
- OpenAPI 仕様をインポートする
- SOAP API をインポートする
- SOAP API をインポートして REST に変換する
- App Service API をインポートする
- コンテナー アプリ API をインポートする
- WebSocket API をインポートする
- GraphQL API をインポートする
- GraphQL スキーマをインポートし、フィールド リゾルバーを設定する
- 関数アプリ API をインポートする
- ロジック アプリ API をインポートする
- Service Fabric サービスをインポートする
- Azure AI Foundry API をインポートする
- Azure OpenAI API をインポートする
- LLM API をインポートする
- OData API をインポートする
- SAP OData メタデータをインポートする
- gRPC API をインポートする
- API の編集