Visual Studio Code で Azure API Management ポリシーをデバッグする

適用対象: Developer

Azure API Management のポリシーでは、API パブリッシャーが、認証、承認、スロットリング、キャッシュ、変換などの横断的問題に対応する助けになる強力な機能が提供されます。 API の要求または応答に対して順に実行される一連のステートメントが集まってポリシーが形成されます。

この記事では、Visual Studio Code 用の Azure API Management 拡張機能を使用して、API Management ポリシーをデバッグする方法について説明します。

前提条件

制限事項と制約事項

  • このフィーチャーでは、デバッグに組み込みの (サービス レベル) オール アクセス サブスクリプション (表示名 「組み込みのオール アクセス サブスクリプション」) を使用します。

重要

  • 要求で Ocp-Apim-Trace ヘッダーを設定し、応答で Ocp-Apim-Trace-Location ヘッダーの値を使用してトレースを取得することによって API Management 要求トレースを有効にすることはできなくなりました。
  • セキュリティを強化するために、API Management REST API を使用して時間制限付きトークンを取得し、要求内でそのトークンをゲートウェイに渡すことで、個々の API レベルでトレースを有効にできるようになりました。 詳細については、このチュートリアルで後述します。
  • トレースを有効にするときは、トレース データ内の機密情報が公開される可能性があるため、注意してください。 トレース データを保護するための適切なセキュリティ対策が整っていることを確認します。

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

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

この時点で、拡張機能により、API Management ゲートウェイとの間でデバッグ セッションの開始と確立が試みられます。

デバッグを開始する

テスト要求を送信する

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

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

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

テスト要求を送信する

デバッグ ポリシー

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

ポリシーをデバッグする

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

[変数] パネルで、システムに作成された変数とユーザーが作成した変数の値を調べることができます。 [ブレークポイント] パネルでは、設定されているすべてのブレークポイントの一覧を表示できます。 [コールスタック] パネルでは、現在有効なポリシーのスコープを表示できます。

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

exceptions

ヒント

完了したら忘れずに、 [停止] ボタンをクリックしてデバッグ セッションを終了してください。

次の手順