Visual Studio Code で Azure API Management ポリシーを作成、理解、デバッグする

適用対象: すべての API Management レベル

この記事では、Visual Studio CodeAzure API Management 拡張機能を使用して> API Management ポリシーを作成、理解、デバッグする方法について説明します。 この拡張機能は GitHub Copilot for Azure と統合され、ポリシーのドラフト作成と説明に役立ちます。

Azure API Management policy は、API の要求または応答に適用される横断的な問題に対処する一連のステートメントです。 これらの問題には、認証、承認、調整、キャッシュ、変換が含まれます。

前提条件

制限事項と制約事項

  • 現在、ポリシー デバッグは API Management Developer レベルでのみサポートされています。

  • ポリシー デバッグでは、組み込み (サービス レベル) のオール アクセス サブスクリプションが使用されます。このサブスクリプションには、 表示名が組み込みのオール アクセス サブスクリプションが含まれています。 このサブスクリプションを使用するには、サービス所有者である必要があります。

GitHub Copilot for Azure を使用してポリシーを作成する

Azure API Management 拡張機能は GitHub Copilot for Azure と統合され、ポリシーのドラフトを作成するのに役立ちます。 AI の支援を受け、ユーザーフレンドリな方法でポリシーを作成および編集します。

ポリシーを作成するには:

  1. Visual Studio Code で API Management 拡張機能を開きます。

  2. 操作する API Management インスタンスを選択します。

  3. 操作するポリシー スコープを選択します。

    • インスタンス内のすべての API に適用されるポリシーを作成するには、[ グローバル ポリシー] を選択します。
    • 特定の API に適用されるポリシーを作成するには、 API で API を選択し、[ポリシー] を選択 します
    • 特定の API 操作に適用されるポリシーを作成するには、操作を選択し、[ポリシー] を選択 します
  4. チャットを開きます。

  5. [チャット] ウィンドウで、ポリシーを作成するためのプロンプトを自然言語で入力します。 例 :

    @azure I want to limit requests to 100 calls per minute
    
    @azure Create a policy that sets the backend URL to https://mybackend.contoso.com and adds a custom header to the request
    

    Copilot は、[チャット] ウィンドウでポリシーの下書きを生成します。 Copilot で出力を変更する場合は、プロンプトを絞り込むことができます。

  6. 準備ができたら、[ コピー ] ボタンを選択してポリシーをクリップボードにコピーするか、[ エディターで適用 ] を選択してエディター ウィンドウにポリシーを挿入します。 ポリシー XML の変更に問題がない場合は、[保持] を選択 します

ヒント

ポリシー XML の 問題 の説明については、[問題] ウィンドウを参照してください。

GitHub Copilot for Azure を使用してポリシーを説明する

Copilot は、API Management インスタンス内の既存のポリシーを説明するのに役立ちます。

説明を受け取る方法:

  1. Visual Studio Code で API Management 拡張機能を開きます。

  2. 操作する API Management インスタンスを選択します。

  3. 操作するポリシー スコープを選択します。

    • インスタンス内のすべての API に適用されるポリシーを説明するには、[ グローバル ポリシー] を選択します。
    • 特定の API に適用されるポリシーを説明するには、 API で API を選択し、[ポリシー] を選択 します
    • 特定の API 操作に適用されるポリシーを説明するには、操作を選択し、[ポリシー] を選択 します
  4. 表示されたポリシー エディター ウィンドウで右クリックし、[ 説明] を選択します。

  5. ポリシー XML ドキュメントのポリシーの概要と説明は、[チャット] ウィンドウに生成されます。

VS Code 拡張機能を使用してポリシーをデバッグする

Visual Studio Code 用の Azure API Management 拡張機能は、ポリシー パイプラインをステップ実行したり、ゲートウェイに要求を送信するときにブレークポイントを設定したりできるデバッグ エクスペリエンスを提供します。

デバッグ セッションを開始する

  1. Visual Studio Code で API Management 拡張機能を開きます。
  2. デバッグする API Management インスタンスを選択します。
  3. デバッグする API と操作を選択します。
  4. 操作を右クリックし、[ ポリシー デバッグの開始] を選択します。

拡張機能は、API Management ゲートウェイとのデバッグ セッションの確立を開始します。 [デバッグ コンソール] ウィンドウで進行状況を確認します。

Visual Studio Code でポリシー デバッグ セッションを開始する場合のスクリーンショット。

デバッグ セッションを開始すると、セッション中の要求トレースも有効になり、問題の診断と解決に役立ちます。

テスト要求を送信する

デバッグ セッションが確立されると、REST クライアント拡張機能によって新しいエディターが開き、テスト HTTP 要求を作成してゲートウェイに送信できます。

Ocp-Apim-Debug ヘッダーが要求に自動的に追加されます。 このヘッダーは必須であり、API Management ゲートウェイでデバッグ機能をトリガーするには、値をサービス レベルのすべてのアクセス許可を持つサブスクリプション キーに設定する必要があります。

実際のテスト シナリオに従って、エディターで HTTP 要求を変更します。 次に、[ 要求の送信 ] を選択して、API Management ゲートウェイにテスト要求を送信します。

Visual Studio Code でテスト要求を送信するスクリーンショット。

デバッグ ポリシー

テスト HTTP 要求が送信されると、拡張機能によってデバッグ ウィンドウが開き、この操作の有効なポリシーが表示され、最初の有効なポリシーで停止します。

Visual Studio Codeのデバッグ ウィンドウのスクリーンショットです。

ポリシー パイプラインに従うには、個々のポリシーをシングル ステップ実行するか、ポリシー内にブレークポイントを設定して、そのポリシーまで直接ステップ実行します。

  • [ 変数 ] パネルで、システム作成変数とユーザー作成変数の値を調べます。
  • [ ブレークポイント ] パネルで、設定したすべてのブレークポイントの一覧を表示します。
  • [呼び出し履歴] パネルで、現在有効なポリシー スコープを表示します。

ポリシーの実行中にエラーが発生した場合は、発生したポリシーにエラーの詳細が表示されます。

デバッグ セッションを終了するには、[停止] を選択 します

Visual Studio Code ポリシー例外のスクリーンショット。

ヒント

要求トレースを確認するには、HTTP 応答で提供される Ocp-Apim-Trace-Location ヘッダーの値を選択します。

  • Visual Studio CodeAPI Management 拡張機能の詳細を確認します>
  • GitHub リポジトリで問題を報告します