次の方法で共有


AZURE コンテナー アプリを API としてインポートする

適用対象: すべての 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 で個別に管理できます。

前提条件

バックエンド API のインポートと発行

  1. Azure portal で API Management サービスに移動し、左側のウィンドウで [API>API] を選択します。

  2. [ Azure リソースから作成] で、[ コンテナー アプリ] を選択します。

    [Container App]\(コンテナー アプリ\) タイルを示すスクリーンショット。

  3. [ 参照] を 選択して、サブスクリプション内のコンテナー アプリの一覧を表示します。

  4. コンテナー アプリを選択します。 OpenAPI 定義が選択したコンテナー アプリに関連付けられている場合、API Management はそれをフェッチしてインポートします。 OpenAPI 定義が見つからない場合、API Management では、一般的な HTTP 動詞のワイルドカード操作を生成して API を公開します。

  5. API URL サフィックスを追加します。 サフィックスは、API Management インスタンス内の API を識別する名前です。 API Management インスタンス内で一意である必要があります。

  6. API を製品に関連付けます。 [ 完全] を選択し、[ 製品] で製品を選択します。 この場合、 無制限 の製品が使用されます。 API を公開して開発者が使用できるようにする場合は、それを製品に追加する必要があります。

    製品 は、1 つ以上の API の関連付けです。 多数の API を組み込み、開発者ポータルを通じてそれらを開発者に提供できます。 開発者は、まず成果物をサブスクライブして API へのアクセス権を取得する必要があります。 サブスクライブすると、その製品内の任意の API に適したサブスクリプション キーが取得されます。 API Management インスタンスを作成した場合は、管理者になっているため、既定ですべての成果物にサブスクライブされます。

    一部の価格レベルでは、API Management インスタンスを作成するときに 2 つのサンプル製品が付属しています。

    • スターター
    • 無制限
  7. 他の API 設定を入力します。 これらの値は、API の作成時に設定することも、[ 設定] タブで後で構成することもできます。これらの設定については、 最初の API のインポートと発行 に関するチュートリアルで説明します。

  8. [作成] を選択します。

    [コンテナー アプリから作成] ウィンドウを示すスクリーンショット。

Azure portal での新しい API のテスト

操作は Azure portal から直接呼び出すことができます。 このメソッドは、API の操作を表示およびテストするための便利な方法です。 開発者ポータルで、または独自の REST クライアント ツールを使用して、API をテストすることもできます。

Azure portal で API をテストするには:

  1. 前の手順で作成した API を選択します。

  2. [テスト] タブを選択します。

  3. 操作を選択します。

    ページに、クエリ パラメーターのフィールドとヘッダーのフィールドが表示されます。 ヘッダーの 1 つが Ocp-Apim-Subscription-Keyです。 このヘッダーは、API に関連付けられている製品のサブスクリプション キー用です。 API Management インスタンスを作成した場合は管理者であるため、キーは自動的に入力されます。

  4. [送信] を選択します。

    テストが成功すると、バックエンドから 200 OK といくつかのデータが応答として返されます。

ポータルでワイルドカード操作をテストする

ワイルドカード操作が生成されるとき、操作がバックエンド API に直接マップしない場合があります。 たとえば、API Management にインポートされるワイルドカード GET 操作では、パス / を既定で使用します。 ただし、バックエンド API では、次のパスで GET 操作をサポートしている場合があります。

/api/TodoItems

/api/TodoItems パスをテストするには:

  1. 作成した API を選択し、操作を選択します。

  2. [テスト] タブを選択します。

  3. [テンプレート パラメーター] で、ワイルドカード (*) 名の横にある値を更新します。 たとえば、「api/TodoItems」と入力します。 この値は、ワイルドカード操作のパス / に追加されます。

    ワイルドカード操作をテストする手順を示すスクリーンショット。

  4. [送信] を選択します。

その他の API の追加

次のようなさまざまなサービスによって公開された API の中から任意の API を構成できます。

  • OpenAPI の仕様
  • SOAP API
  • GraphQL API
  • Azure App Service でホストされる Web アプリ
  • Azure Functions (アジュール ファンクションズ)
  • Azure Logic Apps
  • Azure Service Fabric

API をインポートすると、操作が現在の API に追加されます。

既存の API に API を追加するには:

  1. Azure portal で Azure API Management インスタンスに移動します。

    [API Management サービス] ページを示すスクリーンショット。

  2. [概要] ページで [API] を選択するか、左側のメニューで [API]>[API] の順に選択します。

    [概要] ページでの [API] の選択を示すスクリーンショット。

  3. 別の API を追加する API の横にある省略記号 (...) を選択します。

  4. ドロップダウン メニューから [インポート] を選択します。

    [インポート] コマンドを示すスクリーンショット。

  5. API のインポート元のサービスを選択します。