HTTPModifier ランタイム エラーのトラブルシューティング

Apigee X のドキュメントが表示されています。
Apigee Edge のドキュメントを表示する。

UnresolvedVariable

エラーコード

steps.httpmodifier.UnresolvedVariable

エラー レスポンスの本文

{
    "fault": {
        "faultstring": "HTTPModifier[policy_name]: unable to resolve variable [variable_name]",
        "detail": {
            "errorcode": "steps.httpmodifier.UnresolvedVariable"
        }
    }
}

原因

このエラーは、HTTPModifier ポリシーで指定された変数が次のいずれかの場合に発生します。

  • 範囲外(ポリシーが実行されている特定のフローで使用できない)
  • 解決できない(定義されていない)

診断

  1. エラーが発生した HTTPModifier ポリシーと、使用できない変数の名前を特定します。どちらの項目もエラー レスポンスの faultstring 要素にあります。

    たとえば、次の faultstring では、googleBook がポリシー名、var が変数です。

    "faultstring": "HTTPModifier[googleBook]: unable to resolve variable var"
    
  2. 失敗した HTTPModifier ポリシーの XML で、使用されている変数名が、障害文字列内で特定された変数名(上記のステップ 1)と一致していることを確認します。

  3. 変数が定義されていて、HTTPModifier ポリシーが実行されているフローで使用できるかどうかを確認します。

  4. 変数が次のいずれかの状態になっていないか確認します。

    1. 範囲外(ポリシーが実行されている特定のフローで使用できない)
    2. 解決できない(定義されていない)

    いずれかの状態が当てはまる場合、それがエラーの原因です。

    リクエスト フローの HTTPModifier ポリシーの前に実行されるポリシーに変数が定義されているかどうかを確認します。この変数が定義されていない場合は、次のようなエラーコードが表示されます。

    steps.httpmodifier.UnresolvedVariable
    

解決策

ポリシーで参照される変数があり、HTTPModifier ポリシーが実行されている特定のフローで使用できることを確認します。