Access Control ポリシー
このセクションでは、このポリシーによってエラーがトリガーされたときに返される障害コードとエラー メッセージ、Edge によって設定される障害変数について説明します。 これは、障害に対処する障害ルールを作成するうえで重要な情報です。詳細については、ポリシーエラーについて知っておくべきことと障害の処理をご覧ください。
ランタイム エラー
このエラーは、ポリシーの実行時に発生することがあります。
| 障害コード | HTTP ステータス | 原因 | 修正 | 
|---|---|---|---|
| accesscontrol.IPDeniedAccess | 403 | クライアント IP アドレス、または API リクエストで渡された IP アドレスが、Access Control ポリシーの <MatchRule>要素内の<SourceAddress>要素で指定された IP アドレスと一致し、<MatchRule>要素のaction属性がDENYに設定されます。 | build | 
障害変数
ランタイム エラーが発生すると、次の変数が設定されます。詳細については、ポリシーエラーに固有の変数をご覧ください。
| 変数 | 説明 | 例 | 
|---|---|---|
| fault.name="fault_name" | fault_name は、上記のランタイム エラーの表に記載されている障害の名前です。障害名は、障害コードの最後の部分です。 | fault.name Matches "IPDeniedAccess" | 
| acl.policy_name.failed | policy_name は、障害が発生したポリシーのユーザー指定の名前です。 | acl.AC-AllowAccess.failed = true | 
障害レスポンスの例
{
   "fault":{
     "faultstring":"Access Denied for client ip : 52.211.243.3"
      "detail":{
         "errorcode":"accesscontrol.IPDeniedAccess"
      }
   }
}障害ルールの例
<FaultRule name="IPDeniedAccess">
    <Step>
        <Name>AM-IPDeniedAccess</Name>
        <Condition>(fault.name Matches "IPDeniedAccess") </Condition>
    </Step>
    <Condition>(acl.failed = true) </Condition>
</FaultRule>Access Entity ポリシー
関連情報については、ポリシーエラーについて知っておくべきことと障害の処理をご覧ください。
ランタイム エラー
なし。
デプロイエラー
| エラー名 | 障害文字列 | HTTP ステータス | 発生条件 | 
|---|---|---|---|
| InvalidEntityType | Invalid type [entity_type] in ACCESSENTITYStepDefinition
        [policy_name] | なし | 使用するエンティティ タイプをサポートされているタイプのいずれかにする必要があります。 | 
Assign Message ポリシー
このセクションでは、このポリシーによってエラーがトリガーされたときに返される障害コードとエラー メッセージ、Edge によって設定される障害変数について説明します。 これは、障害に対処する障害ルールを作成するうえで重要な情報です。詳細については、ポリシーエラーについて知っておくべきことと障害の処理をご覧ください。
ランタイム エラー
このエラーは、ポリシーの実行時に発生することがあります。
| 障害コード | HTTP ステータス | 原因 | 修正 | 
|---|---|---|---|
| steps.assignmessage.SetVariableFailed | 500 | ポリシーで変数を設定できませんでした。未解決の変数の名前については、障害文字列をご覧ください。 | |
| steps.assignmessage.VariableOfNonMsgType | 500 | このエラーは、 Message 型の変数は、HTTP リクエストとレスポンス全体を表します。組み込みの Edge
          フロー変数  | build | 
| steps.assignmessage.UnresolvedVariable | 500 | このエラーは、Assign Message ポリシーで指定された変数が次のいずれかの場合に発生します。 
 | build | 
デプロイエラー
以下のエラーは、このポリシーを含むプロキシをデプロイするときに発生することがあります。
| エラー名 | 原因 | 修正 | 
|---|---|---|
| InvalidIndex | Assign Message ポリシーの <Copy>要素または<Remove>要素に指定されたインデックスが 0 か負の数値の場合、API プロキシのデプロイが失敗します。 | build | 
| InvalidVariableName | 子要素 <Name>が空、または<AssignVariable>要素で指定されていない場合は、値を割り当てる有効な変数名が存在しないため、API プロキシのデプロイに失敗します。有効な変数名は必須です。 | build | 
| InvalidPayload | ポリシーで指定されたペイロードが無効です。 | 
障害変数
次の変数は、このポリシーでランタイム エラーが発生したときに設定されます。詳細については、ポリシーエラーについて知っておくべきことをご覧ください。
| 変数 | 説明 | 例 | 
|---|---|---|
| fault.name="fault_name" | fault_name は、上記のランタイム エラーの表に記載されている障害の名前です。障害名は、障害コードの最後の部分です。 | fault.name Matches "UnresolvedVariable" | 
| assignmessage.policy_name.failed | policy_name は、障害が発生したポリシーのユーザー指定の名前です。 | assignmessage.AM-SetResponse.failed = true | 
エラー レスポンスの例
{ "fault":{ "detail":{ "errorcode":"steps.assignmessage.VariableOfNonMsgType" }, "faultstring":"AssignMessage[AM-SetResponse]: value of variable is not of type Message" } }
障害ルールの例
<FaultRule name="Assign Message Faults"> <Step> <Name>AM-CustomNonMessageTypeErrorResponse</Name> <Condition>(fault.name Matches "VariableOfNonMsgType") </Condition> </Step> <Step> <Name>AM-CustomSetVariableErrorResponse</Name> <Condition>(fault.name = "SetVariableFailed")</Condition> </Step> <Condition>(assignmessage.failed = true) </Condition> </FaultRule>
Basic Authentication ポリシー
このセクションでは、このポリシーによってエラーがトリガーされたときに返される障害コードとエラー メッセージ、Edge によって設定される障害変数について説明します。これは、エラーに対処する障害ルールを作成するうえで重要な情報です。詳細については、ポリシーエラーについて知っておくべきことと障害の処理をご覧ください。
ランタイム エラー
このエラーは、ポリシーの実行時に発生することがあります。
| 障害コード | HTTP ステータス | 原因 | 修正 | 
|---|---|---|---|
| steps.basicauthentication.InvalidBasicAuthenticationSource | 500 | デコードで、Base64 エンコードされた文字列に有効な値が含まれていない場合、またはヘッダーの形式が正しくない場合(たとえば、「Basic」で始まっていない場合)。 | build | 
| steps.basicauthentication.UnresolvedVariable | 500 | デコードまたはエンコードに必要なソース変数が存在しません。このエラーは、 IgnoreUnresolvedVariablesが false の場合にのみ発生する可能性があります。 | build | 
デプロイエラー
以下のエラーは、このポリシーを含むプロキシをデプロイするときに発生することがあります。
| エラー名 | 発生条件 | 修正 | 
|---|---|---|
| UserNameRequired | 名前付きオペレーションに <User>要素が存在する必要があります。 | build | 
| PasswordRequired | 名前付きオペレーションに <Password>要素が存在する必要があります。 | build | 
| AssignToRequired | 名前付きオペレーションに <AssignTo>要素が存在する必要があります。 | build | 
| SourceRequired | 名前付きオペレーションに <Source>要素が存在する必要があります。 | build | 
障害変数
ランタイム エラーが発生すると、次の変数が設定されます。詳細については、ポリシーエラーについて知っておくべきことをご覧ください。
| 変数 | 説明 | 例 | 
|---|---|---|
| fault.name="fault_name" | fault_name は、上記のランタイム エラーの表に記載されている障害の名前です。障害名は、障害コードの最後の部分です。 | fault.name Matches "UnresolvedVariable" | 
| BasicAuthentication.policy_name.failed | policy_name は、障害が発生したポリシーのユーザー指定の名前です。 | BasicAuthentication.BA-Authenticate.failed = true | 
エラー レスポンスの例
{ "fault":{ "detail":{ "errorcode":"steps.basicauthentication.UnresolvedVariable" }, "faultstring":"Unresolved variable : request.queryparam.password" } }
障害ルールの例
<FaultRule name="Basic Authentication Faults">
    <Step>
        <Name>AM-UnresolvedVariable</Name>
        <Condition>(fault.name Matches "UnresolvedVariable") </Condition>
    </Step>
    <Step>
        <Name>AM-AuthFailedResponse</Name>
        <Condition>(fault.name = "InvalidBasicAuthenticationSource")</Condition>
    </Step>
    <Condition>(BasicAuthentication.BA-Authentication.failed = true) </Condition>
</FaultRule>Concurrent Rate Limit ポリシー
このセクションでは、このポリシーによってエラーがトリガーされたときに返される障害コードとエラー メッセージ、Edge によって設定される障害変数について説明します。 これは、エラーに対処する障害ルールを作成するうえで重要な情報です。詳細については、ポリシーエラーについて知っておくべきことと障害の処理をご覧ください。
ランタイム エラー
このエラーは、ポリシーの実行時に発生することがあります。
| 障害コード | HTTP ステータス | エラーが発生する条件 | 
|---|---|---|
| policies.concurrentratelimit.ConcurrentRatelimtViolation | 503 | ConcurrentRatelimit 接続を超過した。接続制限: {0} 注: 左側に示す障害コードは正しいですが、 にスペルミス(「limt」)が含まれている。ここに表示されているコードをそのまま使用してください エラーをトラップするための障害ルールを作成します。 | 
デプロイエラー
| エラー名 | エラーが発生する条件 | 
|---|---|
| InvalidCountValue | ConcurrentRatelimit に無効なカウント値が指定されている。 | 
| ConcurrentRatelimitStepAttachment\ | プロキシで同時レート制限ポリシー {0} の接続が許可されない 障害の 3 つのパスがあります。このポリシーは、Target Endpont に配置する必要があります。 | 
| ConcurrentRatelimitStepAttachment\ | 同時レート制限ポリシー {0} アタッチメントがターゲット リクエスト/レスポンス/障害にない あります。このポリシーは、Target Request Preflow、Target Response Postflow、DefaultFaultRule に配置する必要があります。 | 
| InvalidTTLForMessageTimeOut | メッセージのタイムアウトに指定された ConcurrentRatelimit の無効な ttl 値。正の整数を指定する必要があります。 | 
障害変数
このポリシーがエラーをトリガーした場合は、次の変数が設定されます。詳細については、ポリシーエラーについて知っておくべきことをご覧ください。
| 変数 | 説明 | 例 | 
|---|---|---|
| fault.name="fault_name" | fault_name は、上記のランタイム エラーの表に記載されている障害の名前です。障害コードの最後の部分が障害名になります。 | fault.name Matches "ConcurrentRatelimtViolation"注: スペルミス(「limt」)が含まれていますが、この例に表示されているエラーコードは正確です。このエラーをトラップする障害ルールを作成する際には、ここに表示されているコードを正確に使用してください。 | 
| concurrentratelimit.policy_name.failed | policy_name は、障害をスローしたポリシーのユーザー指定の名前です。 | concurrentratelimit.CRL-RateLimitPolicy.failed = true | 
エラー レスポンスの例
レート制限を超えると、ポリシーはクライアントに HTTP ステータス 503 のみを返します。
障害ルールの例
<faultrule name="VariableOfNonMsgType"></faultrule><FaultRules>
    <FaultRule name="Quota Errors">
        <Step>
            <Name>JavaScript-1</Name>
            <Condition>(fault.name Matches "ConcurrentRatelimtViolation") </Condition>
        </Step>
        <Condition>concurrentratelimit.CRL-RateLimitPolicy.failed=true</Condition>
    </FaultRule>
</FaultRules>Decode JWS ポリシー
このセクションでは、このポリシーによってエラーがトリガーされたときに返される障害コードとエラー メッセージ、Edge によって設定される障害変数について説明します。これは、障害に対処する障害ルールを作成するうえで重要な情報です。詳細については、ポリシーエラーについて知っておくべきことと障害の処理をご覧ください。
ランタイム エラー
このエラーは、ポリシーの実行時に発生することがあります。
| 障害コード | HTTP ステータス | 発生条件 | 
|---|---|---|
| steps.jws.FailedToDecode | 401 | ポリシーで JWS をデコードできなかった場合。JWS が破損している可能性があります。 | 
| steps.jws.FailedToResolveVariable | 401 | ポリシーの  <Source>要素で指定されたフロー変数が存在しない場合に発生します。 | 
| steps.jws.InvalidClaim | 401 | クレームが欠落しているか、一致していない場合。または、ヘッダーが欠落しているか、一致していない場合。 | 
| steps.jws.InvalidJsonFormat | 401 | 無効な JSON が JWS ヘッダーで検出された場合。 | 
| steps.jws.InvalidJws | 401 | JWS 署名の検証で不合格だった場合。 | 
| steps.jws.InvalidPayload | 401 | JWS ペイロードが無効な場合。 | 
| steps.jws.InvalidSignature | 401 | <DetachedContent>が省略され、JWS に分離済みのコンテンツ ペイロードがある場合。 | 
| steps.jws.MissingPayload | 401 | JWS ペイロードが欠落している場合。 | 
| steps.jws.NoAlgorithmFoundInHeader | 401 | JWS がアルゴリズム ヘッダーを省略すると発生します。 | 
| steps.jws.UnknownException | 401 | 不明な例外が発生した場合。 | 
デプロイエラー
以下のエラーは、このポリシーを含むプロキシをデプロイするときに発生することがあります。
| エラー名 | エラーが発生する条件 | 
|---|---|
| InvalidAlgorithm | 有効な値は、RS256、RS384、RS512、PS256、PS384、PS512、ES256、ES384、ES512、HS256、HS384、HS512 のみです。 | 
| 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | その他の発生の可能性があるデプロイエラー。 | 
障害変数
ランタイム エラーが発生すると、次の変数が設定されます。詳細については、ポリシーエラーについて知っておくべきことをご覧ください。
| 変数 | 説明 | 例 | 
|---|---|---|
| fault.name="fault_name" | fault_name は、上記のランタイム エラーの表に記載されている障害の名前です。障害名は、障害コードの最後の部分です。 | fault.name Matches "TokenExpired" | 
| JWS.failed | 障害の場合は、すべての JWS ポリシーで同じ変数が設定されます。 | jws.JWS-Policy.failed = true | 
エラー レスポンスの例
ベスト プラクティスとして、エラー処理でエラー レスポンスの errorcode の部分をトラップすることをおすすめします。faultstring のテキストには依存しないでください。この部分は変更される可能性があります。
障害ルールの例
<FaultRules>
    <FaultRule name="JWS Policy Errors">
        <Step>
            <Name>JavaScript-1</Name>
            <Condition>(fault.name Matches "TokenExpired")</Condition>
        </Step>
        <Condition>JWS.failed=true</Condition>
    </FaultRule>
</FaultRules>Decode JWT ポリシー
このセクションでは、このポリシーによってエラーがトリガーされたときに返される障害コードとエラー メッセージ、Edge によって設定される障害変数について説明します。これは、障害に対処する障害ルールを作成するうえで重要な情報です。詳細については、ポリシーエラーについて知っておくべきことと障害の処理をご覧ください。
ランタイム エラー
このエラーは、ポリシーの実行時に発生することがあります。
| 障害コード | HTTP ステータス | 原因 | 解決方法 | 
|---|---|---|---|
| steps.jwt.FailedToDecode | 401 | ポリシーが JWT をデコードできない場合に発生します。JWT が無効か、形式が正しくないか、それ以外の理由でデコードできない可能性があります。 | build | 
| steps.jwt.FailedToResolveVariable | 401 | ポリシーの  <Source>要素で指定されたフロー変数が存在しない場合に発生します。 | |
| steps.jwt.InvalidToken | 401 | ポリシーの  <Source>要素で指定されたフロー変数が範囲外であるか、解決できない場合に発生します。 | build | 
デプロイエラー
以下のエラーは、このポリシーを含むプロキシをデプロイするときに発生することがあります。
| エラー名 | 原因 | 修正 | 
|---|---|---|
| InvalidEmptyElement | デコードする JWT を含むフロー変数が、ポリシーの <Source>要素で指定されていない場合に発生します。 | build | 
障害変数
ランタイム エラーが発生すると、次の変数が設定されます。詳細については、ポリシーエラーについて知っておくべきことをご覧ください。
| 変数 | 説明 | 例 | 
|---|---|---|
| fault.name="fault_name" | fault_name は、上記のランタイム エラーの表に記載されている障害の名前です。障害コードの最後の部分が障害名になります。 | fault.name Matches "TokenExpired" | 
| JWT.failed | 障害の場合、すべての JWT ポリシーで同じ変数が設定されます。 | JWT.failed = true | 
エラー レスポンスの例
ベスト プラクティスとして、エラー処理では、エラー レスポンスの errorcode の部分をトラップすることをおすすめします。faultstring のテキストには依存しないでください。この部分は変更される可能性があります。
障害ルールの例
    <FaultRules>
        <FaultRule name="JWT Policy Errors">
            <Step>
                <Name>JavaScript-1</Name>
                <Condition>(fault.name Matches "TokenExpired")</Condition>
            </Step>
            <Condition>JWT.failed=true</Condition>
        </FaultRule>
    </FaultRules>
    Extract Variables ポリシー
このセクションでは、このポリシーによってエラーがトリガーされたときに返される障害コードとエラー メッセージ、Edge によって設定される障害変数について説明します。 これは、障害に対処する障害ルールを作成するうえで重要な情報です。詳細については、ポリシーエラーについて知っておくべきことと障害の処理をご覧ください。
ランタイム エラー
このエラーは、ポリシーの実行時に発生することがあります。
| 障害コード | HTTP ステータス | 原因 | 修正 | 
|---|---|---|---|
| steps.extractvariables.ExecutionFailed | 500 | このエラーは、次の場合に発生します。 
 | build | 
| steps.extractvariables.ImmutableVariable | 500 | ポリシーで使用されている変数は不変です。ポリシーでこの変数を設定できませんでした。 | |
| steps.extractvariables.InvalidJSONPath | 500 | このエラーは、ポリシーの JSONPath要素で無効な JSON パスが使用されている場合に発生します。たとえば、JSON ペイロードにオブジェクトNameがない場合、ポリシー内のパスとしてNameを指定すると、このエラーが発生します。 | build | 
| steps.extractvariables.JsonPathParsingFailure | 500 | このエラーは、ポリシーが JSON パスを解析できず、 Source要素で指定されたフロー変数からデータを抽出できない場合に発生します。これは通常、Source要素で指定されたフロー変数が現在のフローに存在しない場合に発生します。 | build | 
| steps.extractvariables.SetVariableFailed | 500 | このエラーは、ポリシーが変数に値を設定できなかった場合に発生します。このエラーは通常、ネストされたドット区切り形式で、名前が同じ単語で始まる複数の変数に値を割り当てようとすると発生します。 | build | 
| steps.extractvariables.SourceMessageNotAvailable | 500 | このエラーは、ポリシーの Source要素で指定された message 変数が、次のいずれかである場合に発生します。
 | build | 
| steps.extractvariables.UnableToCast | 500 | このエラーは、ポリシーが抽出された値を変数にキャストできなかった場合に発生します。これは通常、あるデータ型の値を別のデータ型の変数に設定しようとすると発生します。 | build | 
デプロイエラー
以下のエラーは、このポリシーを含むプロキシをデプロイするときに発生することがあります。
| エラー名 | 原因 | 修正 | 
|---|---|---|
| NothingToExtract | ポリシーに URIPath、QueryParam、Header、FormParam、XMLPayload、JSONPayloadのいずれの要素も含まれていない場合、抽出するものがないため、API プロキシのデプロイに失敗します。 | build | 
| NONEmptyPrefixMappedToEmptyURI | このエラーは、ポリシーで XMLPayload要素の下のNamespace要素に接頭辞は定義されているが、URI が定義されていない場合に発生します。 | build | 
| DuplicatePrefix | このエラーは、ポリシーで、 XMLPayload要素の下のNamespace要素で同じ接頭辞が複数回定義されている場合に発生します。 | build | 
| NoXPathsToEvaluate | ポリシーの XMLPayload要素内にXPath要素がない場合、API プロキシのデプロイはこのエラーで失敗します。 | build | 
| EmptyXPathExpression | ポリシーの XMLPayload要素内に空のXPath式がある場合、API プロキシのデプロイは失敗します。 | build | 
| NoJSONPathsToEvaluate | ポリシーの JSONPayload要素内にJSONPath要素がない場合、API プロキシのデプロイがこのエラーで失敗します。 | build | 
| EmptyJSONPathExpression | ポリシーの XMLPayload要素内に空のXPath式がある場合、API プロキシのデプロイは失敗します。 | build | 
| MissingName | ポリシーの QueryParam、Header、FormParam、Variableなどのポリシー要素のいずれかに、必要なname属性が含まれていない場合、API プロキシのデプロイは失敗します。 | build | 
| PatternWithoutVariable | ポリシーの Pattern要素内に変数が指定されていない場合、API プロキシのデプロイが失敗します。Pattern要素には、抽出されたデータを格納するための変数の名前が必要です。 | build | 
| CannotBeConvertedToNodeset | ポリシーに、 Variableの型が nodeset として定義されているXPath式があるが、式を nodeset に変換できない場合、API プロキシのデプロイは失敗します。 | build | 
| JSONPathCompilationFailed | ポリシーは指定された JSON パスをコンパイルできませんでした。 | |
| InstantiationFailed | ポリシーをインスタンス化できませんでした。 | |
| XPathCompilationFailed | XPath要素で使用される接頭辞や値がポリシー内の宣言された名前空間の一部でない場合、API プロキシのデプロイは失敗します。 | build | 
| InvalidPattern | Pattern要素の定義が、ポリシー内のURIPath、QueryParam、Header、FormParam、XMLPayload、JSONPayloadなどの要素のいずれかで無効である場合、API プロキシのデプロイは失敗します。 | build | 
障害変数
次の変数は、このポリシーでランタイム エラーが発生したときに設定されます。詳細については、ポリシーエラーについて知っておくべきことをご覧ください。
| 変数 | 説明 | 例 | 
|---|---|---|
| fault.name="fault_name" | fault_name は、上記のランタイム エラーの表に記載されている障害の名前です。障害名は、障害コードの最後の部分です。 | fault.name = "SourceMessageNotAvailable" | 
| extractvariables.policy_name.failed | policy_name は、障害が発生したポリシーのユーザー指定の名前です。 | extractvariables.EV-ParseJsonResponse.failed = true | 
エラー レスポンスの例
{ "fault":{ "detail":{ "errorcode":"steps.extractvariables.SourceMessageNotAvailable" }, "faultstring":"request message is not available for ExtractVariable: EV-ParseJsonResponse" } }
障害ルールの例
<FaultRule name="Extract Variable Faults"> <Step> <Name>AM-CustomErrorMessage</Name> <Condition>(fault.name = "SourceMessageNotAvailable") </Condition> </Step> <Condition>(extractvariables.EM-ParseJsonResponse.failed = true) </Condition> </FaultRule>
Generate JWS ポリシー
このセクションでは、このポリシーによってエラーがトリガーされたときに返される障害コードとエラー メッセージ、Edge によって設定される障害変数について説明します。これは、障害に対処する障害ルールを作成するうえで重要な情報です。詳細については、ポリシーエラーについて知っておくべきことと障害の処理をご覧ください。
ランタイム エラー
このエラーは、ポリシーの実行時に発生することがあります。
| 障害コード | HTTP ステータス | 発生条件 | 
|---|---|---|
| steps.jws.GenerationFailed | 401 | ポリシーで JWS を生成できない場合。 | 
| steps.jws.InsufficientKeyLength | 401 | HS256 アルゴリズム用の鍵が 32 バイト未満の場合。 | 
| steps.jws.InvalidClaim | 401 | クレームが欠落しているか、一致していない場合。または、ヘッダーが欠落しているか、一致していない場合。 | 
| steps.jws.InvalidCurve | 401 | 鍵で指定された曲線が、楕円曲線アルゴリズムでは無効な場合。 | 
| steps.jws.InvalidJsonFormat | 401 | 無効な JSON が JWS ヘッダーで検出された場合。 | 
| steps.jws.InvalidPayload | 401 | JWS ペイロードが無効な場合。 | 
| steps.jws.InvalidSignature | 401 | <DetachedContent>が省略され、JWS に分離済みのコンテンツ ペイロードがある場合。 | 
| steps.jws.KeyIdMissing | 401 | Verify ポリシーが JWKS を公開鍵のソースとして使用するが、署名付き JWS にはヘッダーに kidプロパティが含まれてない場合。 | 
| steps.jws.KeyParsingFailed | 401 | 指定された鍵情報で公開鍵を解析できない場合。 | 
| steps.jws.MissingPayload | 401 | JWS ペイロードが欠落している場合。 | 
| steps.jws.NoAlgorithmFoundInHeader | 401 | JWS がアルゴリズム ヘッダーを省略すると発生します。 | 
| steps.jws.SigningFailed | 401 | GenerateJWS では、HS384 または HS512 アルゴリズムの最小サイズ未満の鍵の場合。 | 
| steps.jws.UnknownException | 401 | 不明な例外が発生した場合。 | 
| steps.jws.WrongKeyType | 401 | 鍵のタイプが正しくない場合。たとえば、楕円曲線アルゴリズムで RSA 鍵を指定した場合や、RSA アルゴリズムで曲線鍵を指定した場合など。 | 
デプロイエラー
以下のエラーは、このポリシーを含むプロキシをデプロイするときに発生することがあります。
| エラー名 | エラーが発生する条件 | 
|---|---|
| InvalidAlgorithm | 有効な値は、RS256、RS384、RS512、PS256、PS384、PS512、ES256、ES384、ES512、HS256、HS384、HS512 のみです。 | 
| 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | その他の発生の可能性があるデプロイエラー。 | 
障害変数
ランタイム エラーが発生すると、次の変数が設定されます。詳細については、ポリシーエラーについて知っておくべきことをご覧ください。
| 変数 | 説明 | 例 | 
|---|---|---|
| fault.name="fault_name" | fault_name は、上記のランタイム エラーの表に記載されている障害の名前です。障害名は、障害コードの最後の部分です。 | fault.name Matches "TokenExpired" | 
| JWS.failed | 障害の場合は、すべての JWS ポリシーで同じ変数が設定されます。 | jws.JWS-Policy.failed = true | 
エラー レスポンスの例
ベスト プラクティスとして、エラー処理でエラー レスポンスの errorcode の部分をトラップすることをおすすめします。faultstring のテキストには依存しないでください。この部分は変更される可能性があります。
障害ルールの例
<FaultRules>
    <FaultRule name="JWS Policy Errors">
        <Step>
            <Name>JavaScript-1</Name>
            <Condition>(fault.name Matches "TokenExpired")</Condition>
        </Step>
        <Condition>JWS.failed=true</Condition>
    </FaultRule>
</FaultRules>Generate JWT ポリシー
このセクションでは、このポリシーによってエラーがトリガーされたときに返される障害コードとエラー メッセージ、Edge によって設定される障害変数について説明します。これは、障害に対処する障害ルールを作成するうえで重要な情報です。詳細については、ポリシーエラーについて知っておくべきことと障害の処理をご覧ください。
ランタイム エラー
このエラーは、ポリシーの実行時に発生することがあります。
| 障害コード | HTTP ステータス | 発生条件 | 
|---|---|---|
| steps.jwt.AlgorithmInTokenNotPresentInConfiguration | 401 | 検証ポリシーに複数のアルゴリズムがある場合。 | 
| steps.jwt.AlgorithmMismatch | 401 | Generate ポリシーで指定されたアルゴリズムが、Verify ポリシーで想定されているアルゴリズムと一致しない場合。指定されたアルゴリズムが一致している必要があります。 | 
| steps.jwt.FailedToDecode | 401 | ポリシーで JWT をデコードできなかった場合。JWT が破損している可能性があります。 | 
| steps.jwt.GenerationFailed | 401 | ポリシーで JWT を生成できなかった場合。 | 
| steps.jwt.InsufficientKeyLength | 401 | HS256 アルゴリズムで鍵が 32 バイト未満の場合、HS386 アルゴリズムで鍵が 48 バイト未満の場合、HS512 アルゴリズムで鍵が 64 バイト未満の場合。 | 
| steps.jwt.InvalidClaim | 401 | クレームが欠落しているか、一致していない場合。または、ヘッダーが欠落しているか、一致していない場合。 | 
| steps.jwt.InvalidCurve | 401 | 鍵で指定された曲線が、楕円曲線アルゴリズムでは無効な場合。 | 
| steps.jwt.InvalidJsonFormat | 401 | ヘッダーまたはペイロードで無効な JSON が検出された場合。 | 
| steps.jwt.InvalidToken | 401 | JWT 署名の検証で不合格だった場合。 | 
| steps.jwt.JwtAudienceMismatch | 401 | トークンの検証でオーディエンス クレームが不合格だった場合。 | 
| steps.jwt.JwtIssuerMismatch | 401 | トークンの検証で発行元クレームが不合格だった場合。 | 
| steps.jwt.JwtSubjectMismatch | 401 | トークンの検証でサブジェクト クレームが不合格だった場合。 | 
| steps.jwt.KeyIdMissing | 401 | Verify ポリシーが公開鍵のソースとして JWKS を使用しているが、署名付き JWT のヘッダーに kidプロパティが含まれてない場合。 | 
| steps.jwt.KeyParsingFailed | 401 | 指定された鍵情報で公開鍵を解析できない場合。 | 
| steps.jwt.NoAlgorithmFoundInHeader | 401 | JWT にアルゴリズム ヘッダーが含まれていない場合。 | 
| steps.jwt.NoMatchingPublicKey | 401 | Verify ポリシーが JWKS を公開鍵のソースとして使用するが、署名付き JWT の kidが JWKS にリストされていない場合。 | 
| steps.jwt.SigningFailed | 401 | GenerateJWT で、HS384 または HS512 アルゴリズムの鍵が最小サイズより小さい場合。 | 
| steps.jwt.TokenExpired | 401 | ポリシーが期限切れのトークンを検証しようとしている場合。 | 
| steps.jwt.TokenNotYetValid | 401 | トークンがまだ有効になっていない場合。 | 
| steps.jwt.UnhandledCriticalHeader | 401 | critヘッダーの Verify JWT ポリシーで見つかったヘッダーがKnownHeadersにリストされていない場合。 | 
| steps.jwt.UnknownException | 401 | 不明な例外が発生した場合。 | 
| steps.jwt.WrongKeyType | 401 | 鍵のタイプが正しくない場合。たとえば、楕円曲線アルゴリズムで RSA 鍵を指定した場合や、RSA アルゴリズムで曲線鍵を指定した場合など。 | 
デプロイエラー
以下のエラーは、このポリシーを含むプロキシをデプロイするときに発生することがあります。
| エラー名 | 原因 | 修正 | 
|---|---|---|
| InvalidNameForAdditionalClaim | <AdditionalClaims>要素の子要素<Claim>で使用されているクレームの型が登録済みの名前(kid、iss、sub、aud、iat、exp、nbf、jti)のいずれかである場合、デプロイが失敗します。 | build | 
| InvalidTypeForAdditionalClaim | <AdditionalClaims>要素の子要素<Claim>で使用されているクレームがstring、number、boolean、map型でない場合、デプロイが失敗します。 | build | 
| MissingNameForAdditionalClaim | <AdditionalClaims>要素の子要素<Claim>でクレームの名前が指定されていない場合、デプロイが失敗します。 | build | 
| InvalidNameForAdditionalHeader | このエラーは、 <AdditionalClaims>要素の子要素<Claim>で使用されているクレームの名前がalgまたはtypの場合に発生します。 | build | 
| InvalidTypeForAdditionalHeader | <AdditionalClaims>要素の子要素<Claim>で使用されているクレームの型がstring、number、boolean、map型でない場合、デプロイが失敗します。 | build | 
| InvalidValueOfArrayAttribute | このエラーは、 <AdditionalClaims>要素の子要素<Claim>内の配列属性の値がtrueまたはfalseに設定されていない場合に発生します。 | build | 
| InvalidConfigurationForActionAndAlgorithm | <PrivateKey>要素が HS ファミリー アルゴリズムで使用されている場合、または<SecretKey>要素が RSA ファミリー アルゴリズムで使用されている場合、デプロイが失敗します。 | build | 
| InvalidValueForElement | <Algorithm>要素に指定された値がサポートされていない場合、デプロイが失敗します。 | build | 
| MissingConfigurationElement | このエラーは、 <PrivateKey>要素が RSA ファミリー アルゴリズムで使用されていない場合や、<SecretKey>要素が HS ファミリー アルゴリズムで使用されていない場合に発生します。 | build | 
| InvalidKeyConfiguration | 子要素 <Value>が<PrivateKey>要素または<SecretKey>要素で定義されていない場合、デプロイが失敗します。 | build | 
| EmptyElementForKeyConfiguration | <PrivateKey>要素または<SecretKey>要素の子要素<Value>の ref 属性が空か、指定されていない場合、デプロイが失敗します。 | build | 
| InvalidVariableNameForSecret | このエラーは、 <PrivateKey>要素や<SecretKey>要素の子要素<Value>の ref 属性で指定されたフロー変数名に、非公開の接頭辞(private.)が含まれていない場合に発生します。 | build | 
| InvalidSecretInConfig | このエラーは、 <PrivateKey>要素または<SecretKey>要素の子要素<Value>に非公開の接頭辞(private.)が含まれていない場合に発生します。 | build | 
| InvalidTimeFormat | <NotBefore>要素に指定された値がサポートされている形式でない場合、デプロイは失敗します。 | build | 
障害変数
ランタイム エラーが発生すると、次の変数が設定されます。詳細については、ポリシーエラーについて知っておくべきことをご覧ください。
| 変数 | 説明 | 例 | 
|---|---|---|
| fault.name="fault_name" | fault_name は、上記のランタイム エラーの表に記載されている障害の名前です。障害コードの最後の部分が障害名になります。 | fault.name Matches "TokenExpired" | 
| JWT.failed | 障害の場合、すべての JWT ポリシーで同じ変数が設定されます。 | JWT.failed = true | 
エラー レスポンスの例
ベスト プラクティスとして、エラー処理では、エラー レスポンスの errorcode の部分をトラップすることをおすすめします。faultstring のテキストには依存しないでください。この部分は変更される可能性があります。
障害ルールの例
    <FaultRules>
        <FaultRule name="JWT Policy Errors">
            <Step>
                <Name>JavaScript-1</Name>
                <Condition>(fault.name Matches "TokenExpired")</Condition>
            </Step>
            <Condition>JWT.failed=true</Condition>
        </FaultRule>
    </FaultRules>
    Java Callout ポリシー
このセクションでは、このポリシーによってエラーがトリガーされたときに返される障害コードとエラー メッセージ、Edge によって設定される障害変数について説明します。 これは、障害に対処する障害ルールを作成するうえで重要な情報です。詳細については、ポリシーエラーについて知っておくべきことと障害の処理をご覧ください。
ランタイム エラー
このエラーは、ポリシーの実行時に発生することがあります。
| 障害コード | HTTP ステータス | 原因 | 修正 | 
|---|---|---|---|
| 
        steps.javacallout.ExecutionError | 500 | JavaCallout ポリシーの実行中に Java コードが例外を出力する、または null を返す場合に発生します。 | build | 
デプロイエラー
これらのエラーは、ポリシーを含むプロキシがデプロイされているときに発生することがあります。
| エラー名 | 障害文字列 | HTTP ステータス | 発生条件 | 
|---|---|---|---|
| 
        ResourceDoesNotExist | 
        Resource with name
        [name] and type [type] does not exist | なし | <ResourceURL>要素で指定されたファイルが存在しません。 | 
| JavaCalloutInstantiationFailed | Failed to instantiate the JavaCallout Class [classname] | なし | <ClassName>要素で指定されたクラスファイルが jar 内にありません。 | 
| IncompatibleJavaVersion | Failed to load java class [classname] definition due to - [reason] | 該当なし | 障害文字列をご覧ください。サポートされている ソフトウェアとサポート対象バージョン。 | 
| JavaClassNotFoundInJavaResource | Failed to find the ClassName in java resource [jar_name] -
        [class_name] | なし | 障害文字列をご覧ください。 | 
| JavaClassDefinitionNotFound | Failed to load java class [class_name] definition due to - [reason] | なし | 障害文字列をご覧ください。 | 
| NoAppropriateConstructor | No appropriate constructor found in JavaCallout class [class_name] | なし | 障害文字列をご覧ください。 | 
| NoResourceForURL | Could not locate a resource with URL [string] | なし | 障害文字列をご覧ください。 | 
障害変数
このポリシーがエラーをトリガーした場合は、次の変数が設定されます。詳細については、ポリシーエラーについて知っておくべきことをご覧ください。
| 変数 | 説明 | 例 | 
|---|---|---|
| fault.name="fault_name" | fault_name は、上記のランタイム エラーの表に記載されている障害の名前です。障害名は、障害コードの最後の部分です。 | fault.name Matches "ExecutionError" | 
| javacallout.policy_name.failed | policy_name は、障害が発生したポリシーのユーザー指定の名前です。 | javacallout.JC-GetUserData.failed = true | 
エラー レスポンスの例
{ "fault":{ "faultstring":"Failed to execute JavaCallout. [policy_name]", "detail":{ "errorcode":"javacallout.ExecutionError" } } }
障害ルールの例
<FaultRule name="JavaCalloutFailed"> <Step> <Name>AM-JavaCalloutError</Name> </Step> <Condition>(fault.name Matches "ExecutionError") </Condition> </FaultRule>
JavaScript ポリシー
このセクションでは、障害コードとエラー メッセージ、障害変数について説明します。 このポリシーでエラーがトリガーされたときに Edge によって設定されます。これは、障害に対処する障害ルールを作成するうえで重要な情報です。詳細については、ポリシーエラーについて知っておくべきことと障害の処理をご覧ください。
ランタイム エラー
このエラーは、ポリシーの実行時に発生することがあります。
| 障害コード | HTTP ステータス | 原因 | 修正 | 
|---|---|---|---|
| steps.javascript.ScriptExecutionFailed | 500 | JavaScript ポリシーは、さまざまな種類の ScriptExecutionFailed エラーをスローできます。よくあるエラーには、次のようなものがあります。RangeError、ReferenceError、SyntaxError、TypeError、URIError。 | build | 
| steps.javascript.ScriptExecutionFailedLineNumber | 500 | JavaScript コードでエラーが発生しました。詳しくは、障害文字列をご覧ください。 | なし | 
| steps.javascript.ScriptSecurityError | 500 | JavaScript の実行時にセキュリティ エラーが発生しました。詳しくは、障害文字列をご覧ください。 | なし | 
デプロイエラー
以下のエラーは、このポリシーを含むプロキシをデプロイするときに発生することがあります。
| エラー名 | 原因 | 修正 | 
|---|---|---|
| InvalidResourceUrlFormat | JavaScript ポリシーの <ResourceURL>または<IncludeURL>要素で指定されたリソース URL の形式が無効な場合、API プロキシのデプロイが失敗します。 | build | 
| InvalidResourceUrlReference | <ResourceURL>または<IncludeURL>要素が存在しない JavaScript ファイルを参照すると、API プロキシのデプロイは失敗します。参照されるソースファイルは、API プロキシ、環境、または組織レベルのいずれかに存在している必要があります。 | build | 
| WrongResourceType | このエラーは、デプロイ中に JavaScript ポリシーの <ResourceURL>要素または<IncludeURL>要素が jsc(JavaScript ファイル)以外のリソースタイプを参照している場合に発生します。 | build | 
| NoResourceURLOrSource | <ResourceURL>要素を宣言していない場合、またはこの要素内にリソース URL が定義されていない場合、JavaScript ポリシーのデプロイがこのエラーで失敗する可能性があります。<ResourceURL>要素は必須の要素です。または、<IncludeURL>要素を宣言します。ただし、この要素内でリソース URL が定義されていません。<IncludeURL>要素はオプションですが、宣言された場合、リソース URL を<IncludeURL>要素内に指定する必要があります。 | build | 
障害変数
次の変数は、このポリシーでランタイム エラーが発生したときに設定されます。詳細については、ポリシーエラーについて知っておくべきことをご覧ください。
| 変数 | 説明 | 例 | 
|---|---|---|
| fault.name="fault_name" | fault_name は、上記のランタイム エラーの表に記載されている障害の名前です。障害名は、障害コードの最後の部分です。 | fault.name Matches "ScriptExecutionFailed" | 
| javascript.policy_name.failed | policy_name は、障害が発生したポリシーのユーザー指定の名前です。 | javascript.JavaScript-1.failed = true | 
エラー レスポンスの例
{ "fault": { "faultstring": "Execution of SetResponse failed with error: Javascript runtime error: "ReferenceError: "status" is not defined. (setresponse.js:6)\"", "detail": { "errorcode": "steps.javascript.ScriptExecutionFailed" } } }
障害ルールの例
<FaultRule name="JavaScript Policy Faults"> <Step> <Name>AM-CustomErrorResponse</Name> <Condition>(fault.name Matches "ScriptExecutionFailed") </Condition> </Step> <Condition>(javascript.JavaScript-1.failed = true) </Condition> </FaultRule>
JSON Threat Protection ポリシー
このセクションでは、このポリシーによってエラーがトリガーされたときに返される障害コードとエラー メッセージ、Edge によって設定される障害変数について説明します。 これは、障害に対処する障害ルールを作成するうえで重要な情報です。詳細については、ポリシーエラーについて知っておくべきことと障害の処理をご覧ください。
ランタイム エラー
このエラーは、ポリシーの実行時に発生することがあります。
| 障害コード | HTTP ステータス | 原因 | 修正 | 
|---|---|---|---|
| steps.jsonthreatprotection.ExecutionFailed | 500 | JSONThreatProtection ポリシーでは、さまざまな種類の ExecutionFailed エラーをスローできます。エラーのほとんどは、ポリシーで設定された特定のしきい値を超えた場合に発生します。これらのタイプのエラーには、オブジェクト エントリ名の長さ、オブジェクト エントリ数、配列要素数、コンテナの深さ、文字列値の長さなどがあります。このエラーは、ペイロードに無効な JSON オブジェクトが含まれている場合にも発生します。 | build | 
| steps.jsonthreatprotection.SourceUnavailable | 500 | このエラーは、 <Source>要素で指定された メッセージ変数が次のいずれかである場合に発生します。
 | build | 
| steps.jsonthreatprotection.NonMessageVariable | 500 | このエラーは、 <Source>要素がメッセージ型以外の変数に設定されている場合に発生します。 | build | 
デプロイエラー
なし。
障害変数
このポリシーがエラーをトリガーした場合は、次の変数が設定されます。詳細については、ポリシーエラーについて知っておくべきことをご覧ください。
| 変数 | 説明 | 例 | 
|---|---|---|
| fault.name="fault_name" | fault_name は、上記のランタイム エラーの表に記載されている障害の名前です。障害名は、障害コードの最後の部分です。 | fault.name Matches "SourceUnavailable" | 
| jsonattack.policy_name.failed | policy_name は、障害が発生したポリシーのユーザー指定の名前です。 | jsonattack.JTP-SecureRequest.failed = true | 
エラー レスポンスの例
{
  "fault": {
    "faultstring": "JSONThreatProtection[JPT-SecureRequest]: Execution failed. reason: JSONThreatProtection[JTP-SecureRequest]: Exceeded object entry name length at line 2",
    "detail": {
      "errorcode": "steps.jsonthreatprotection.ExecutionFailed"
    }
  }
}障害ルールの例
<FaultRule name="JSONThreatProtection Policy Faults">
    <Step>
        <Name>AM-CustomErrorResponse</Name>
        <Condition>(fault.name Matches "ExecutionFailed") </Condition>
    </Step>
    <Condition>(jsonattack.JPT-SecureRequest.failed = true) </Condition>
</FaultRule>
JSONThreatProtection ポリシータイプでは、次のエラーコードを定義します。
JSON to XML ポリシー
このセクションでは、このポリシーによってエラーがトリガーされたときに返される障害コードとエラー メッセージ、Edge によって設定される障害変数について説明します。 これは、障害に対処する障害ルールを作成するうえで重要な情報です。詳細については、ポリシーエラーについて知っておくべきことと障害の処理をご覧ください。
ランタイム エラー
このエラーは、ポリシーの実行時に発生することがあります。
| 障害コード | HTTP ステータス | 原因 | 修正 | 
|---|---|---|---|
| steps.jsontoxml.ExecutionFailed | 500 | 入力ペイロード(JSON)が空か、JSON to XML ポリシーに渡された入力(JSON)が無効または不正です。 | build | 
| steps.jsontoxml.InCompatibleTypes | 500 | このエラーは、 <Source>要素で定義された変数の型と、<OutputVariable>要素で定義された変数の型が異なる場合に発生します。<Source>要素に含まれる変数の型と<OutputVariable>要素に含まれる変数の型は一致している必要があります。有効な型はmessageとstringです。 | build | 
| steps.jsontoxml.InvalidSourceType | 500 | このエラーは、 <Source>要素の定義に使用される変数の型が無効な場合に発生します。有効な変数の型はmessageとstringです。 | build | 
| steps.jsontoxml.OutputVariableIsNotAvailable | 500 | このエラーは、JSON to XML ポリシーの <Source>要素で指定された変数が String 型であり、<OutputVariable>要素が定義されていない場合に発生します。<Source>要素で定義された変数が String 型の場合、<OutputVariable>要素は必須です。 | build | 
| steps.jsontoxml.SourceUnavailable | 500 | このエラーは、JSON to XML ポリシーの <Source>要素で指定された message 変数が、次のいずれかである場合に発生します。
 | build | 
デプロイエラー
なし。
障害変数
ランタイム エラーが発生すると、次の変数が設定されます。詳細については、ポリシーエラーについて知っておくべきことをご覧ください。
| 変数 | 説明 | 例 | 
|---|---|---|
| fault.name="fault_name" | fault_name は、上記のランタイム エラーの表に記載されている障害の名前です。障害名は、障害コードの最後の部分です。 | fault.name Matches "SourceUnavailable" | 
| jsontoxml.policy_name.failed | policy_name は、障害が発生したポリシーのユーザー指定の名前です。 | jsontoxml.JSON-to-XML-1.failed = true | 
エラー レスポンスの例
{
  "fault": {
    "faultstring": "JSONToXML[JSON-to-XML-1]: Source xyz is not available",
    "detail": {
      "errorcode": "steps.json2xml.SourceUnavailable"
    }
  }
}障害ルールの例
<FaultRule name="JSON To XML Faults">
    <Step>
        <Name>AM-SourceUnavailableMessage</Name>
        <Condition>(fault.name Matches "SourceUnavailable") </Condition>
    </Step>
    <Step>
        <Name>AM-BadJSON</Name>
        <Condition>(fault.name = "ExecutionFailed")</Condition>
    </Step>
    <Condition>(jsontoxml.JSON-to-XML-1.failed = true) </Condition>
</FaultRule>Key Value Map Operations ポリシー
このセクションでは、このポリシーによってエラーがトリガーされたときに返される障害コードとエラー メッセージ、Edge によって設定される障害変数について説明します。これは、障害に対処する障害ルールを作成するうえで重要な情報です。詳細については、ポリシーエラーについて知っておくべきことと障害の処理をご覧ください。
ランタイム エラー
このエラーは、ポリシーの実行時に発生することがあります。
| 障害コード | HTTP ステータス | 原因 | 解決方法 | 
|---|---|---|---|
| steps.keyvaluemapoperations.SetVariableFailed | 500 | このエラーは、暗号化された Key-Value マップから値を取得し、名前に接頭辞  | build | 
| steps.keyvaluemapoperations.UnsupportedOperationException | 500 | このエラーは、 | build | 
デプロイエラー
以下のエラーは、このポリシーを含むプロキシをデプロイするときに発生することがあります。
| エラー名 | 原因 | 解決方法 | 
|---|---|---|
| InvalidIndex | Key Value Map Operations ポリシーの <Get>要素に指定されたindex属性がゼロまたは負の数である場合、API プロキシのデプロイは失敗します。インデックスは1から始まるため、ゼロまたは負の整数のインデックスは無効と見なされます。 | build | 
| KeyIsMissing | このエラーは、 <Key>要素が完全に欠落しているか、Key Value Map Operations ポリシーの<InitialEntries>要素の<Entry>の下の<Key>要素に<Parameter>要素がない場合に発生します。 | build | 
| ValueIsMissing | このエラーは、Key Value Map Operations ポリシーの <InitialEntries>要素の<Entry>要素の下に<Value>要素がない場合に発生します。 | build | 
LDAP ポリシー
このポリシーでは、次のエラーコードを使用します。
| エラーコード | メッセージ | 
|---|---|
| InvalidAttributeName | Invalid attribute name {0}. | 
| InvalidSearchBase | Search base can not be empty. | 
| InvalidValueForPassword | Invalid value for password field. It can not be empty. | 
| InvalidSearchScope | Invalid scope {0}. Allowed scopes are {1}. | 
| InvalidUserCredentials | Invalid user credentials. | 
| InvalidExternalLdapReference | Invalid external ldap reference {0}. | 
| LdapResourceNotFound | Ldap resource {0} not found. | 
| BaseDNRequired | Base DN required. | 
| OnlyReferenceOrValueIsAllowed | Only value or reference is allowed for {0}. | 
| AttributesRequired | At least one attribute required for search action. | 
| UserNameIsNull | User name is null. | 
| SearchQueryAndUserNameCannotBePresent | Both search query and username can not be present in the authentication action.
        Please specify either one of them. | 
Message Logging ポリシー
このセクションでは、このポリシーによってエラーがトリガーされたときに返される障害コードとエラー メッセージ、Edge によって設定される障害変数について説明します。 これは、障害に対処する障害ルールを作成するうえで重要な情報です。詳細については、ポリシーエラーについて知っておくべきことと障害の処理をご覧ください。
ランタイム エラー
このエラーは、ポリシーの実行時に発生することがあります。
| 障害コード | HTTP ステータス | 原因 | 
|---|---|---|
| steps.messagelogging.StepDefinitionExecutionFailed | 500 | 障害文字列をご覧ください。 | 
デプロイエラー
以下のエラーは、このポリシーを含むプロキシをデプロイするときに発生することがあります。
| エラー名 | 原因 | 修正 | 
|---|---|---|
| InvalidProtocol | <Protocol>要素内で指定されたプロトコルが有効でない場合、MessageLogging ポリシーのデプロイがこのエラーで失敗する場合があります。有効なプロトコルは TCP と UDP です。TLS / SSL 経由で syslog メッセージを送信する場合は、TCP のみがサポートされます。 | build | 
| InvalidPort | <Port>要素内でポート番号が指定されていない、あるいは有効でない場合、MessageLogging ポリシーのデプロイがこのエラーで失敗する場合があります。ポート番号は 0 より大きい整数である必要があります。 | build | 
障害変数
ランタイム エラーが発生すると、次の変数が設定されます。詳細については、ポリシーエラーについて知っておくべきことをご覧ください。
| 変数 | 説明 | 例 | 
|---|---|---|
| fault.name="fault_name" | fault_name は、上記のランタイム エラーの表に記載されている障害の名前です。障害名は、障害コードの最後の部分です。 | fault.name Matches "StepDefinitionExecutionFailed" | 
| messagelogging.policy_name.failed | policy_name は、障害が発生したポリシーのユーザー指定の名前です。 | messagelogging.ML-LogMessages.failed = true | 
エラー レスポンスの例
{  
   "fault":{  
      "detail":{  
         "errorcode":"steps.messagelogging.StepDefinitionExecutionFailed"
      },
      "faultstring":"Execution failed"
   }
}障害ルールの例
<FaultRule name="MessageLogging">
    <Step>
        <Name>ML-LogMessages</Name>
        <Condition>(fault.name Matches "StepDefinitionExecutionFailed") </Condition>
    </Step>
    <Condition>(messagelogging.ML-LogMessages.failed = true) </Condition>
</FaultRule>OASValidation ポリシー
このセクションでは、このポリシーによってエラーがトリガーされたときに返される障害コードとエラー メッセージ、Edge によって設定される障害変数について説明します。これは、障害に対処する障害ルールを作成するうえで重要な情報です。詳細については、ポリシーエラーについて知っておくべきことと障害の処理をご覧ください。
ランタイム エラー
このエラーは、ポリシーの実行時に発生することがあります。
| 障害コード | HTTP ステータス | 原因 | |
|---|---|---|---|
| steps.oasvalidation.Failed | 500 | リクエスト メッセージの本文が、指定された OpenAPI 仕様に対して検証できない。 | |
| steps.oasvalidation.SourceMessageNotAvailable | 500 | ポリシーの  | |
| steps.oasvalidation.NotMessageVariable | 500 | 
 | build | 
デプロイエラー
以下のエラーは、このポリシーを含むプロキシをデプロイするときに発生することがあります。
| エラー名 | 原因 | |
|---|---|---|
| ResourceDoesNotExist | <OASResource>要素で参照されている OpenAPI 仕様が存在しません。 | |
| ResourceCompileFailed | デプロイに含まれている OpenAPI 仕様に、コンパイルを妨げるエラーが存在します。これは通常、仕様が正しい形式の OpenAPI 仕様 3.0 ではないことを示しています。 | |
| BadResourceURL | <OASResource>要素で参照されている OpenAPI 仕様が処理できません。これは、ファイルが JSON または YAML ファイルでない場合、またはファイルの URL が正しく指定されていない場合に発生することがあります。 | 
障害変数
次の変数は、このポリシーでランタイム エラーが発生したときに設定されます。詳細については、ポリシーエラーについて知っておくべきことをご覧ください。
| 変数 | 説明 | 例 | 
|---|---|---|
| fault.name="fault_name" | fault_name は、上記のランタイム エラーの表に記載されている障害の名前です。障害名は、障害コードの最後の部分です。 | fault.name Matches "ResourceDoesNotExist" | 
| oasvalidation.policy_name.failed | policy_name は、障害をスローしたポリシーのユーザー指定の名前です。 | oasvalidation.myoaspolicy.failed = true | 
Populate Cache ポリシー
このセクションでは、このポリシーによってエラーがトリガーされたときに返される障害コードとエラー メッセージ、Edge によって設定される障害変数について説明します。 これは、障害に対処する障害ルールを作成するうえで重要な情報です。詳細については、ポリシーエラーについて知っておくべきことと障害の処理をご覧ください。
ランタイム エラー
このエラーは、ポリシーの実行時に発生することがあります。
| 障害コード | HTTP ステータス | 発生時期 | 
|---|---|---|
| policies.populatecache.EntryCannotBeCached | 500 | エントリをキャッシュできない場合。キャッシュされるメッセージ オブジェクトが、シリアル化可能なクラスのインスタンスではない場合。 | 
デプロイエラー
以下のエラーは、このポリシーを含むプロキシをデプロイするときに発生することがあります。
| エラー名 | 原因 | 修正 | 
|---|---|---|
| InvalidCacheResourceReference | このエラーは、API プロキシがデプロイされている環境に存在しない名前に PopulateCache ポリシーの <CacheResource>要素が設定されている場合に発生します。 | build | 
| CacheNotFound | <CacheResource>要素で指定されたキャッシュが存在しません。 | build | 
障害変数
このポリシーがエラーをトリガーした場合は、次の変数が設定されます。詳細については、ポリシーエラーについて知っておくべきことをご覧ください。
| 変数 | 説明 | 例 | 
|---|---|---|
| fault.name="fault_name" | fault_name は、上記のランタイム エラーの表に記載されている障害の名前です。障害名は、障害コードの最後の部分です。 | fault.name = "EntryCannotBeCached" | 
| populatecache.policy_name.failed | policy_name は、障害が発生したポリシーのユーザー指定の名前です。 | populatecache.POP-CACHE-1.failed = true | 
エラー レスポンスの例
{ "fault": { "faultstring": "[entry] can not be cached. Only serializable entries are cached.", "detail": { "errorcode": "steps.populatecache.EntryCannotBeCached" } } }
障害ルールの例
<FaultRule name="Populate Cache Fault">
    <Step>
        <Name>AM-EntryCannotBeCached</Name>
        <Condition>(fault.name Matches "EntryCannotBeCached") </Condition>
    </Step>
    <Condition>(populatecache.POP-CACHE-1.failed = true) </Condition>
</FaultRule>Lookup Cache ポリシー
このセクションでは、このポリシーがエラーをトリガーしたときに設定されるエラー メッセージとフロー変数について説明します。これは、プロキシの障害ルールを作成するうえで重要な情報です。詳細については、ポリシーエラーについて知っておくべきことと障害の処理をご覧ください。
エラーコードの接頭辞
なし
ランタイム エラー
このポリシーはランタイム エラーをスローしません。
デプロイエラー
以下のエラーは、このポリシーを含むプロキシをデプロイするときに発生することがあります。
| エラー名 | 原因 | 解決方法 | 
|---|---|---|
| InvalidCacheResourceReference | このエラーは、API プロキシがデプロイされている環境に存在しない名前が <CacheResource>要素に設定されている場合に発生します。 | build | 
| InvalidTimeout | <CacheLookupTimeoutInSeconds>要素が負の数に設定されている場合、API プロキシのデプロイは失敗します。 | build | 
| CacheNotFound | このエラーは、エラー メッセージに記述されているキャッシュが、特定の Message Processor コンポーネント上に作成されていない場合に発生します。 | build | 
障害変数
なし
エラー レスポンスの例
なし
Invalidate Cache ポリシー
このセクションでは、このポリシーがエラーをトリガーしたときに設定されるエラー メッセージとフロー変数について説明します。これは、プロキシの障害ルールを作成するうえで重要な情報です。詳細については、ポリシーエラーについて知っておくべきことと障害の処理をご覧ください。
エラーコードの接頭辞
なし
ランタイム エラー
このポリシーはランタイム エラーをスローしません。
デプロイエラー
以下のエラーは、このポリシーを含むプロキシをデプロイするときに発生することがあります。
| エラー名 | 原因 | 修正 | 
|---|---|---|
| InvalidCacheResourceReference | このエラーは、API プロキシがデプロイされている環境に存在しない名前が InvalidateCache ポリシーの <CacheResource>要素に設定されている場合に発生します。 | build | 
| CacheNotFound | このエラーは、エラー メッセージに記述されているキャッシュが、特定の Message Processor コンポーネント上に作成されていない場合に発生します。 | build | 
障害変数
なし
エラー レスポンスの例
なし
Response Cache ポリシー
このセクションでは、このポリシーがエラーをトリガーしたときに設定されるエラー メッセージとフロー変数について説明します。これは、プロキシの障害ルールを作成するうえで重要な情報です。詳細については、ポリシーエラーについて知っておくべきことと障害の処理をご覧ください。
エラーコードの接頭辞
なし
ランタイム エラー
このポリシーはランタイム エラーをスローしません。
デプロイエラー
以下のエラーは、このポリシーを含むプロキシをデプロイするときに発生することがあります。
| エラー名 | 原因 | 解決方法 | 
|---|---|---|
| InvalidTimeout | ResponseCache ポリシーの <CacheLookupTimeoutInSeconds>要素が負の数に設定されている場合、API プロキシのデプロイは失敗します。 | build | 
| InvalidCacheResourceReference | このエラーは、ResponseCache ポリシーの <CacheResource>要素が、API プロキシのデプロイ先の環境には存在しない名前に設定される場合に発生します。 | build | 
| ResponseCacheStepAttachmentNotAllowedReq | このエラーは、同じ ResponseCache ポリシーが API プロキシの任意のフロー内の複数のリクエスト パスに接続されている場合に発生します。 | build | 
| ResponseCacheStepAttachmentNotAllowedResp | このエラーは、同じ ResponseCache ポリシーが API プロキシの任意のフロー内の複数のレスポンス パスに接続されている場合に発生します。 | build | 
| InvalidMessagePatternForErrorCode | このエラーは、ResponseCache ポリシーの <SkipCacheLookup>要素または<SkipCachePopulation>要素に無効な条件が含まれている場合に発生します。 | build | 
| CacheNotFound | このエラーは、エラー メッセージに記述されているキャッシュが、特定の Message Processor コンポーネント上に作成されていない場合に発生します。 | build | 
障害変数
なし
エラー レスポンスの例
なし
OAuthV2 ポリシー
このセクションでは、このポリシーでエラーが発生したときに返される障害コードとエラー メッセージ、Edge によって設定される障害変数について説明します。これは、障害に対処する障害ルールを作成するうえで重要な情報です。詳細については、ポリシーエラーについて知っておくべきことと障害の処理をご覧ください。
ランタイム エラー
このエラーは、ポリシーの実行時に発生することがあります。
| 障害コード | HTTP ステータス | 原因 | オペレーションによるスロー | 
|---|---|---|---|
| steps.oauth.v2.access_token_expired | 401 | アクセス トークンの期限が切れています。 | VerifyAccessToken | 
| steps.oauth.v2.access_token_not_approved | 401 | アクセス トークンは取り消されています。 | VerifyAccessToken | 
| steps.oauth.v2.apiresource_doesnot_exist | 401 | リクエストされたリソースが、アクセス トークンに関連付けられた API プロダクトに存在していません。 | VerifyAccessToken | 
| steps.oauth.v2.FailedToResolveAccessToken | 500 | ポリシーは、 <AccessToken>要素で指定された変数内でアクセス トークンを見つけることを想定しましたが、この変数は解決できませんでした。 | GenerateAccessToken | 
| steps.oauth.v2.FailedToResolveAuthorizationCode | 500 | ポリシーは、 <Code>要素で指定された変数内で認証コードを見つけることを想定しましたが、この変数は解決できませんでした。 | GenerateAuthorizationCode | 
| steps.oauth.v2.FailedToResolveClientId | 500 | ポリシーは、 <ClientId>要素で指定された変数内でクライアント ID を見つけることを想定しましたが、この変数は解決できませんでした。 | GenerateAccessToken GenerateAuthorizationCode GenerateAccessTokenImplicitGrant RefreshAccessToken | 
| steps.oauth.v2.FailedToResolveRefreshToken | 500 | ポリシーは、 <RefreshToken>要素で指定された変数内で更新トークンを見つけることを想定しましたが、この変数は解決できませんでした。 | RefreshAccessToken | 
| steps.oauth.v2.FailedToResolveToken | 500 | ポリシーは、 <Tokens>要素で指定された変数内でトークンを見つけることを想定しましたが、この変数は解決できませんでした。 | ValidateToken | 
| steps.oauth.v2.InsufficientScope | 403 | リクエストで提供されたアクセス トークンのスコープが、アクセス トークン検証ポリシーに指定されているスコープと一致しません。スコープの詳細については、OAuth2 スコープの操作をご覧ください。 | VerifyAccessToken | 
| steps.oauth.v2.invalid_access_token | 401 | クライアントから送信されたアクセス トークンが無効です。 | VerifyAccessToken | 
| steps.oauth.v2.invalid_client | 401 | このエラー名は、ポリシーの  注: 既存の障害ルールの条件を変更し、 | GenerateAccessToken RefreshAccessToken | 
| steps.oauth.v2.InvalidRequest | 400 | このエラー名は、複数の異なる種類のエラーに使用されます。通常は、リクエストで送信されたパラメータが欠落しているか、正しくない場合に使用されます。 <GenerateResponse>がfalseに設定されている場合、後述する障害変数を使用してエラーの詳細(障害名、原因など)を取得します。 | GenerateAccessToken GenerateAuthorizationCode GenerateAccessTokenImplicitGrant RefreshAccessToken | 
| steps.oauth.v2.InvalidAccessToken | 401 | 認証ヘッダーに、必須の単語「Bearer」がありません。例: Authorization: Bearer your_access_token | VerifyAccessToken | 
| steps.oauth.v2.InvalidAPICallAsNoApiProductMatchFound | 401 | アクセス トークンに関連付けられたプロダクトに、API プロキシがありません。 ヒント: アクセス トークンに関連付けられたプロダクトが適切に構成されていることを確認してください。たとえば、リソースパスでワイルドカードを使用する場合は、ワイルドカードが正確に使用されていることを確認します。詳細については、API プロダクトを作成するをご覧ください。 このエラーの原因について詳しくは、こちらの Apigee コミュニティの投稿をご覧ください。 | VerifyAccessToken | 
| steps.oauth.v2.InvalidClientIdentifier | 500 | このエラー名は、ポリシーの  | GenerateAccessToken | 
| steps.oauth.v2.InvalidParameter | 500 | ポリシーでは、アクセス トークンまたは認証コードのいずれかを指定する必要がありますが、両方は指定できません。 | GenerateAuthorizationCode GenerateAccessTokenImplicitGrant | 
| steps.oauth.v2.InvalidTokenType | 500 | <Tokens>/<Token>要素でトークンタイプ(たとえばrefreshtoken)を指定する必要があります。クライアントが誤ったタイプを渡すと、このエラーがスローされます。 | ValidateToken InvalidateToken | 
| steps.oauth.v2.MissingParameter | 500 | レスポンス タイプが tokenですが、権限付与タイプが指定されていません。 | GenerateAuthorizationCode GenerateAccessTokenImplicitGrant | 
| steps.oauth.v2.UnSupportedGrantType | 500 | クライアントで指定された権限付与タイプが、ポリシーでサポートされていません(<SupportedGrantTypes> 要素のリストにありません)。 注: 現在、サポートされていない権限付与タイプのエラーが正しくスローされないバグがあります。サポートされていない権限付与タイプのエラーが発生した場合、プロキシはエラーフローを想定どおりに入力しません。 | GenerateAccessToken GenerateAuthorizationCode GenerateAccessTokenImplicitGrant RefreshAccessToken | 
デプロイエラー
以下のエラーは、このポリシーを含むプロキシをデプロイするときに発生することがあります。
| エラー名 | 原因 | 
|---|---|
| InvalidValueForExpiresIn | 
 | 
| InvalidValueForRefreshTokenExpiresIn | <RefreshTokenExpiresIn>要素の場合、有効な値は正の整数と-1です。 | 
| InvalidGrantType | <SupportedGrantTypes>要素に無効な権限付与タイプが指定されています。有効な付与タイプのリストについては、ポリシー リファレンスをご覧ください。 | 
| ExpiresInNotApplicableForOperation | <Operations> 要素に指定されたオペレーションで有効期限がサポートされていることを確認してください。たとえば、VerifyToken オペレーションではサポートされていません。 | 
| RefreshTokenExpiresInNotApplicableForOperation | <Operations> 要素に指定されたオペレーションで、更新トークンの有効期限がサポートされていることを確認してください。たとえば、VerifyToken オペレーションではサポートされていません。 | 
| GrantTypesNotApplicableForOperation | <SupportedGrantTypes> に指定された付与タイプが、指定したオペレーションでサポートされていることを確認してください。 | 
| OperationRequired | 
 注:  | 
| InvalidOperation | 
 注:  | 
| TokenValueRequired | <Tokens>要素にトークン<Token>値を指定する必要があります。 | 
障害変数
次の変数は、このポリシーでランタイム エラーが発生したときに設定されます。
| 変数 | 説明 | 例 | 
|---|---|---|
| fault.name="fault_name" | fault_name は、上記のランタイム エラーの表に記載されている障害の名前です。障害名は、障害コードの最後の部分です。 | fault.name = "InvalidRequest" | 
| oauthV2.policy_name.failed | policy_name は、障害が発生したポリシーのユーザー指定の名前です。 | oauthV2.GenerateAccesstoken.failed = true | 
| oauthV2.policy_name.fault.name | policy_name は、障害をスローしたポリシーのユーザー指定の名前です。 | oauthV2.GenerateAccesstoken.fault.name = InvalidRequest注: VerifyAccessToken オペレーションでは、障害名に次の接尾辞が含まれます:  | 
| oauthV2.policy_name.fault.cause | policy_name は、障害をスローしたポリシーのユーザー指定の名前です。 | oauthV2.GenerateAccesstoken.cause = Required param : grant_type | 
エラー レスポンスの例
<GenerateResponse> 要素が true の場合、これらのレスポンスがクライアントに返されます。
<GenerateResponse> が true の場合、ポリシーはトークンとコードを生成するオペレーションに対して、次の形式のエラーを返します。一覧については、OAuth HTTP エラー レスポンス リファレンスをご覧ください。
{"ErrorCode" : "invalid_client", "Error" :"ClientId is Invalid"}<GenerateResponse> が true の場合、ポリシーは検証および検証オペレーションに対して、次の形式のエラーを返します。一覧については、OAuth HTTP エラー レスポンス リファレンスをご覧ください。
{ { "fault":{ "faultstring":"Invalid Access Token", "detail":{ "errorcode":"keymanagement.service.invalid_access_token" } } }
障害ルールの例
<FaultRule name=OAuthV2 Faults">
    <Step>
        <Name>AM-InvalidClientResponse</Name>
        <Condition>(fault.name = "invalid_client") OR (fault.name = "InvalidClientIdentifier")</Condition>
    </Step>
    <Step>
        <Name>AM-InvalidTokenResponse</Name>
        <Condition>(fault.name = "invalid_access_token")</Condition>
    </Step>
    <Condition>(oauthV2.failed = true) </Condition>
</FaultRule>Get OAuthV2 Info ポリシー
このセクションでは、このポリシーによってエラーがトリガーされたときに返される障害コードとエラー メッセージ、Edge によって設定される障害変数について説明します。 これは、障害に対処する障害ルールを作成するうえで重要な情報です。詳細については、ポリシーエラーについて知っておくべきことと障害の処理をご覧ください。
ランタイム エラー
このエラーは、ポリシーの実行時に発生することがあります。以下のエラー名は、エラーが発生したときに fault.name 変数に割り当てられる文字列です。詳細については、以下の障害変数のセクションをご覧ください。
| 障害コード | HTTP ステータス | 原因 | 
|---|---|---|
| steps.oauth.v2.access_token_expired | 500 | ポリシーに送信されたアクセス トークンは、期限が切れています。 | 
| steps.oauth.v2.authorization_code_expired | 500 | ポリシーに送信された認証コードは、期限が切れています。 | 
| steps.oauth.v2.invalid_access_token | 500 | ポリシーに送信されたアクセス トークンが無効です。 | 
| steps.oauth.v2.invalid_client-invalid_client_id | 500 | ポリシーに送信されたクライアント ID が無効です。 | 
| steps.oauth.v2.invalid_refresh_token | 500 | ポリシーに送信された更新トークンは無効です。 | 
| steps.oauth.v2.invalid_request-authorization_code_invalid | 500 | ポリシーに送信された認証コードは無効です。 | 
| steps.oauth.v2.InvalidAPICallAsNoApiProductMatchFound | 401 | このエラーのトラブルシューティングについては、こちらの Apigee コミュニティの投稿をご覧ください。 | 
| steps.oauth.v2.refresh_token_expired | 500 | ポリシーに送信されたリフレッシュ トークンは、期限が切れています。 | 
デプロイエラー
デプロイエラーについては、UI で報告されるメッセージを参照してください。
障害変数
次の変数は、このポリシーでランタイム エラーが発生したときに設定されます。
| 変数 | 説明 | 例 | 
|---|---|---|
| fault.name="fault_name" | fault_name は、上記のランタイム エラーの表に記載されている障害の名前です。障害名は、障害コードの最後の部分です。 | fault.name Matches "IPDeniedAccess" | 
| oauthV2.policy_name.failed | policy_name は、障害が発生したポリシーのユーザー指定の名前です。 | oauthV2.GetTokenInfo.failed = true | 
| oauthV2.policy_name.fault.name | policy_name は、障害が発生したポリシーのユーザー指定の名前です。 | oauthV2.GetToKenInfo.fault.name = invalid_client-invalid_client_id | 
| oauthV2.policy_name.fault.cause | policy_name は、障害が発生したポリシーのユーザー指定の名前です。 | oauthV2.GetTokenInfo.cause = ClientID is Invalid | 
エラー レスポンスの例
{ "fault":{ "faultstring":"ClientId is Invalid", "detail":{ "errorcode":"keymanagement.service.invalid_client-invalid_client_id" } } }
障害ルールの例
<FaultRule name="OAuthV2 Faults">
    <Step>
        <Name>AM-InvalidClientIdResponse</Name>
    </Step>
    <Condition>(fault.name = "invalid_client-invalid_client_id")</Condition>
</FaultRule>Set OAuthV2 Info ポリシー
このセクションでは、このポリシーによってエラーがトリガーされたときに返される障害コードとエラー メッセージ、Edge によって設定される障害変数について説明します。 これは、障害に対処する障害ルールを作成するうえで重要な情報です。詳細については、ポリシーエラーについて知っておくべきことと障害の処理をご覧ください。
ランタイム エラー
このエラーは、ポリシーの実行時に発生することがあります。
| 障害コード | HTTP ステータス | 原因 | 
|---|---|---|
| steps.oauth.v2.access_token_expired | 500 | ポリシーに送信されたアクセス トークンは、期限が切れています。 | 
| steps.oauth.v2.invalid_access_token | 500 | ポリシーに送信されたアクセス トークンが無効です。 | 
| steps.oauth.v2.InvalidAPICallAsNoApiProductMatchFound | 401 | このエラーのトラブルシューティングについては、こちらの Apigee コミュニティの投稿をご覧ください。 | 
デプロイエラー
デプロイエラーについては、UI で報告されるメッセージを参照してください。
障害変数
次の変数は、このポリシーでランタイム エラーが発生したときに設定されます。
| 変数 | 説明 | 例 | 
|---|---|---|
| fault.name="fault_name" | fault_name は、上記のランタイム エラーの表に記載されている障害の名前です。障害名は、障害コードの最後の部分です。 | fault.name = "invalid_access_token" | 
| oauthV2.policy_name.failed | policy_name は、障害が発生したポリシーのユーザー指定の名前です。 | oauthV2.SetTokenInfo.failed = true | 
| oauthV2.policy_name.fault.name | policy_name は、障害が発生したポリシーのユーザー指定の名前です。 | oauthV2.SetTokenInfo.fault.name = invalid_access_token | 
| oauthv2.policy_name.fault.cause | policy_name は、障害が発生したポリシーのユーザー指定の名前です。 | oauthV2.SetTokenInfo.cause = Invalid Access Token | 
エラー レスポンスの例
{
  "fault": {
    "faultstring": "Invalid Access Token",
    "detail": {
      "errorcode": "keymanagement.service.invalid_access_token"
    }
  }
}障害ルールの例
<FaultRule name=SetOAuthV2Info Faults">
    <Step>
        <Name>AM-InvalidTokenResponse</Name>
        <Condition>(fault.name = "invalid_access_token")</Condition>
    </Step>
    <Condition>(oauthV2.failed = true) </Condition>
</FaultRule>Delete OAuthV2 Info ポリシー
このセクションでは、このポリシーによってエラーがトリガーされたときに返される障害コードとエラー メッセージ、Edge によって設定される障害変数について説明します。 これは、障害に対処する障害ルールを作成するうえで重要な情報です。詳細については、ポリシーエラーについて知っておくべきことと障害の処理をご覧ください。
ランタイム エラー
このエラーは、ポリシーの実行時に発生することがあります。
| 障害コード | HTTP ステータス | 原因 | 
|---|---|---|
| steps.oauth.v2.invalid_access_token | 401 | ポリシーに送信されたアクセス トークンが無効です。 | 
| steps.oauth.v2.invalid_request-authorization_code_invalid | 401 | ポリシーに送信された認証コードが無効です。 | 
| steps.oauth.v2.InvalidAPICallAsNoApiProductMatchFound | 401 | このエラーのトラブルシューティングについては、こちらの Apigee コミュニティの投稿をご覧ください。 | 
デプロイエラー
デプロイエラーについては、UI で報告されるメッセージを参照してください。
障害変数
次の変数は、このポリシーでランタイム エラーが発生したときに設定されます。
| 変数 | 説明 | 例 | 
|---|---|---|
| fault.name="fault_name" | fault_name は、上記のランタイム エラーの表に記載されている障害の名前です。障害名は、障害コードの最後の部分です。 | fault.name = "invalid_access_token" | 
| oauthV2.policy_name.failed | policy_name は、障害が発生したポリシーのユーザー指定の名前です。 | oauthV2.DeleteTokenInfo.failed = true | 
| oauthV2.policy_name.fault.name | policy_name は、障害が発生したポリシーのユーザー指定の名前です。 | oauthV2.DeleteTokenInfo.fault.name = invalid_access_token | 
| oauthv2.policy_name.fault.cause | policy_name は、障害が発生したポリシーのユーザー指定の名前です。 | oauthV2.DeleteTokenInfo.cause = Invalid Access Token | 
エラー レスポンスの例
{
  "fault": {
    "faultstring": "Invalid Access Token",
    "detail": {
      "errorcode": "keymanagement.service.invalid_access_token"
    }
  }
}障害ルールの例
<faultrule name="VariableOfNonMsgType"></faultrule><FaultRule name="DeleteOAuthV2Info_Faults">
    <Step>
        <Name>AM-InvalidTokenResponse</Name>
    </Step>
    <Condition>(fault.name = "invalid_access_token")</Condition>
</FaultRule>OAuth v1.0a ポリシー
OAuthV1 ポリシータイプは、次のエラーコードを定義します。
OAuth 関連の HTTP エラーコードについては、OAuth HTTP エラー レスポンス リファレンスをご覧ください。
| エラーコード | メッセージ | 
|---|---|
| AppKeyNotResolved | Could not resolve the app key with variable {0} | 
| ConsumerKeyNotResolved | Could not resolve the consumer key with variable {0} | 
| RequestTokenNotResolved | Could not resolve the request token with the variable {0} | 
| AccessTokenNotResolved | Could not resolve the access token with the variable {0} | 
| ResponseGenerationError | Error while generating response : {0} | 
| UnableToDetermineOperation | Unable to determine an operation for stepDefinition {0} | 
| UnableToResolveOAuthConfig | Unable to resolve the OAuth configuration for {0} | 
| AtLeastOneParamRequired | At least one of AccessToken, RequestToken or ConsumerKey must be specified in
        stepDefinition {0} | 
| SpecifyValueOrRefReqToken | Specify Request Token as value or ref in stepDefinition {0} | 
| SpecifyValueOrRefAccToken | Specify Access Token as value or ref in stepDefinition {0} | 
| SpecifyValueOrRefConKey | Specify Consumer Key as value or ref in stepDefinition {0} | 
| SpecifyValueOrRefAppKey | Specify App Key as value or ref in stepDefinition {0} | 
| ExpiresInNotApplicableForOperation | ExpiresIn element is not valid for operation {0} | 
| InvalidValueForExpiresIn | Invalid value for ExpiresIn element for operation {0} | 
| FailedToFetchApiProduct | Failed to fetch api product for key {0} | 
| InvalidTokenType | Valid token types : {0}, Invalid toke type {1} in stepDefinition {2} | 
| TokenValueRequired | Token value is required in stepDefinition {0} | 
| FailedToResolveRealm | Failed to resolve realm {0} | 
Get OAuthV1 Info ポリシー
Get OAuth v1.0a Info ポリシーにエラーコードが指定されていません。
Delete OAuthV1 Info ポリシー
成功すると、ポリシーは 200 ステータスを返します。
失敗すると、ポリシーは 404 と次のような出力を返します( (アクセス トークン、リクエスト トークン、ベリファイアを削除する場合):
HTTP/1.1 404 Not Found Content-Type: application/json Content-Length: 144 Connection: keep-alive {"fault":{"faultstring":"Invalid Access Token","detail":{"errorcode":"keymanagement.service.invalid_request-access_token_invalid"}}}
Python Script ポリシー
このセクションでは、障害コードとエラー メッセージ、障害変数について説明します。 このポリシーでエラーがトリガーされたときに Edge によって設定されます。これは、障害に対処する障害ルールを作成するうえで重要な情報です。詳細については、ポリシーエラーについて知っておくべきことと障害の処理をご覧ください。
ランタイム エラー
このエラーは、ポリシーの実行時に発生することがあります。
| 障害コード | HTTP ステータス | 原因 | 修正 | 
|---|---|---|---|
| steps.script.ScriptEvaluationFailed | 500 | PythonScript ポリシーは、複数のタイプの ScriptExecutionFailed エラーをスローします。よくある 表示されるエラーには、NameError や ZeroDivisionError。 | build | 
デプロイエラー
以下のエラーは、このポリシーを含むプロキシをデプロイするときに発生することがあります。
| エラー名 | 原因 | 修正 | 
|---|---|---|
| InvalidResourceUrlFormat | PythonScript ポリシーの <ResourceURL>または<IncludeURL>要素で指定されたリソース URL の形式が無効な場合、API プロキシのデプロイは失敗します。 | build | 
| InvalidResourceUrlReference | <ResourceURL>要素または<IncludeURL>要素が、存在しない PythonScript ファイルを参照している場合、API プロキシのデプロイは失敗します。参照されるソースファイルは、API プロキシ、環境、または組織レベルのいずれかに存在している必要があります。 | build | 
障害変数
次の変数は、このポリシーでランタイム エラーが発生したときに設定されます。詳細については、ポリシーエラーについて知っておくべきことをご覧ください。
| 変数 | 説明 | 例 | 
|---|---|---|
| fault.name="fault_name" | fault_name は、上記のランタイム エラーの表に記載されている障害の名前です。 障害名は、障害コードの最後の部分です。 | fault.name Matches "ScriptExecutionFailed" | 
| pythonscript.policy_name.failed | policy_name は、障害が発生したポリシーのユーザー指定の名前です。 | pythonscript.PythonScript-1.failed = true | 
エラー レスポンスの例
{ "fault": { "faultstring": "Execution of SetResponse failed with error: Pythonscript runtime error: "ReferenceError: "status" is not defined.\"", "detail": { "errorcode": "steps.script.ScriptExecutionFailed" } } }
障害ルールの例
<FaultRule name="PythonScript Policy Faults"> <Step> <Name>AM-CustomErrorResponse</Name> <Condition>(fault.name Matches "ScriptExecutionFailed") </Condition> </Step> <Condition>(pythonscript.PythonScript-1.failed = true) </Condition> </FaultRule>
Quota ポリシー
このセクションでは、このポリシーによってエラーがトリガーされたときに返される障害コードとエラー メッセージ、Edge によって設定される障害変数について説明します。 これは、障害に対処する障害ルールを作成するうえで重要な情報です。詳細については、ポリシーエラーについて知っておくべきことと障害の処理をご覧ください。
ランタイム エラー
このエラーは、ポリシーの実行時に発生することがあります。
| 障害コード | HTTP ステータス | 原因 | 修正 | 
|---|---|---|---|
| policies.ratelimit.FailedToResolveQuotaIntervalReference | 500 | Quota ポリシーで <Interval>要素が定義されていない場合に発生します。この要素は必須であり、割り当てに適用できる期間を指定するために使用されます。期間は、<TimeUnit>要素で定義された分、時間、日、週、月で指定できます。 | build | 
| policies.ratelimit.FailedToResolveQuotaIntervalTimeUnitReference | 500 | Quota ポリシーで <TimeUnit>要素が定義されていない場合に発生します。この要素は必須であり、割り当てに適用できる時間単位を指定するために使用されます。期間は、分、時間、日、週、月で指定できます。 | build | 
| policies.ratelimit.InvalidMessageWeight | 500 | フロー変数で <MessageWeight>要素に無効な値(整数以外の値)が指定された場合に発生します。 | build | 
| policies.ratelimit.QuotaViolation | 500 | 割り当て上限を超えました。 | なし | 
デプロイエラー
| エラー名 | 原因 | 修正 | 
|---|---|---|
| InvalidQuotaInterval | <Interval>要素に指定された割り当て間隔が整数でない場合、API プロキシのデプロイが失敗します。たとえば、<Interval>要素で指定された割り当て間隔が 0.1 の場合、API プロキシのデプロイが失敗します。 | build | 
| InvalidQuotaTimeUnit | <TimeUnit>要素で指定された時間単位がサポートされていない場合、API プロキシのデプロイは失敗します。サポートされている時間単位はminute、hour、day、week、monthです。 | build | 
| InvalidQuotaType | <Quota>要素のtype属性で指定された割り当てのタイプが無効な場合、API プロキシのデプロイは失敗します。サポートされている割り当てのタイプは、default、calendar、flexi、rollingwindowです。 | build | 
| InvalidStartTime | <StartTime>要素で指定された時刻の形式が無効な場合、API プロキシのデプロイは失敗します。有効な形式はyyyy-MM-dd HH:mm:ssです。これは ISO 8601 の日付と時刻の形式です。たとえば、<StartTime>要素で指定された時間が7-16-2017 12:00:00の場合、API プロキシのデプロイは失敗します。 | build | 
| StartTimeNotSupported | 割り当てのタイプが calendarタイプ以外の<StartTime>要素が指定されている場合、API プロキシのデプロイは失敗します。<StartTime>要素は、calendar割り当てタイプでのみサポートされています。たとえば、<Quota>要素のtype属性がflexiまたはrolling windowに設定されている場合、API プロキシのデプロイは失敗します。 | build | 
| InvalidTimeUnitForDistributedQuota | <Distributed>要素がtrueに設定され、<TimeUnit>要素がsecondに設定されている場合、API プロキシのデプロイが失敗します。分散割り当てで時間単位secondは無効です。 | build | 
| InvalidSynchronizeIntervalForAsyncConfiguration | <SyncIntervalInSeconds>要素に指定された値が
         Quota ポリシーの<AsynchronousConfiguration>要素が 0 未満の場合、
          API プロキシのデプロイに失敗します。 | build | 
| InvalidAsynchronizeConfigurationForSynchronousQuota | Quota ポリシーで <AsynchronousConfiguration>要素の値がtrueに設定されていて、<AsynchronousConfiguration>要素を使用して非同期構成が定義されている場合、API プロキシのデプロイは失敗します。 | build | 
障害変数
このポリシーがエラーをトリガーした場合は、次の変数が設定されます。詳細については、ポリシーエラーについて知っておくべきことをご覧ください。
| 変数 | 説明 | 例 | 
|---|---|---|
| fault.name="fault_name" | fault_name は、上記のランタイム エラーの表に記載されている障害の名前です。障害名は、障害コードの最後の部分です。 | fault.name Matches "QuotaViolation" | 
| ratelimit.policy_name.failed | policy_name は、障害が発生したポリシーのユーザー指定の名前です。 | ratelimit.QT-QuotaPolicy.failed = true | 
エラー レスポンスの例
{ "fault":{ "detail":{ "errorcode":"policies.ratelimit.QuotaViolation" }, "faultstring":"Rate limit quota violation. Quota limit exceeded. Identifier : _default" } }
障害ルールの例
<FaultRules>
    <FaultRule name="Quota Errors">
        <Step>
            <Name>JavaScript-1</Name>
            <Condition>(fault.name Matches "QuotaViolation") </Condition>
        </Step>
        <Condition>ratelimit.Quota-1.failed=true</Condition>
    </FaultRule>
</FaultRules>Reset Quota ポリシー
このセクションでは、このポリシーによってエラーがトリガーされたときに返される障害コードとエラー メッセージ、Edge によって設定される障害変数について説明します。これは、障害に対処する障害ルールを作成するうえで重要な情報です。詳細については、ポリシーエラーについて知っておくべきことと障害の処理をご覧ください。
ランタイム エラー
このエラーは、ポリシーの実行時に発生することがあります。
| 障害コード | HTTP ステータス | 原因 | 解決方法 | 
|---|---|---|---|
| policies.resetquota.InvalidRLPolicy | 500 | Reset Quota ポリシーの <Quota>要素で指定された Quota ポリシーは API プロキシで定義されていないため、フロー中には使用できません。<Quota>要素は必須であり、Reset Quota ポリシーでカウンタを更新するターゲット Quota ポリシーを特定します。 | build | 
| policies.resetquota.FailedToResolveAllowCountRef | なし | ポリシーの <Allow>要素の許可カウントを含む変数への参照を値に解決できません。この要素は必須であり、割り当てカウンタを減らす量を指定します。 | build | 
| policies.resetquota.FailedToResolveRLPolicy | 500 | <Quota>要素のref属性によって参照される変数は解決できません。 | build | 
デプロイエラー
以下のエラーは、このポリシーを含むプロキシをデプロイするときに発生することがあります。
| エラー名 | 原因 | 修正 | 
|---|---|---|
| InvalidCount | Reset Quota ポリシーの <Allow>要素で指定されたカウント値が整数でない場合、API プロキシのデプロイが失敗します。 | build | 
Raise Fault ポリシー
このセクションでは、障害コードとエラー メッセージ、障害変数について説明します。 このポリシーでエラーがトリガーされたときに Edge によって設定されます。 これは、障害に対処する障害ルールを作成するうえで重要な情報です。詳細については、ポリシーエラーについて知っておくべきことと障害の処理をご覧ください。
ランタイム エラー
このエラーは、ポリシーの実行時に発生することがあります。
| 障害コード | HTTP ステータス | 原因 | 
|---|---|---|
| steps.raisefault.RaiseFault | 500 | 障害文字列をご覧ください。 | 
デプロイエラー
なし。
障害変数
ランタイム エラーが発生すると、次の変数が設定されます。詳細については、ポリシーエラーについて知っておくべきことをご覧ください。
| 変数 | 説明 | 例 | 
|---|---|---|
| fault.name="fault_name" | fault_name は、上記のランタイム エラーの表に記載されている障害の名前です。障害名は、障害コードの最後の部分です。 | fault.name = "RaiseFault" | 
| raisefault.policy_name.failed | policy_name は、ユーザー指定のポリシー名です。 エラーをスローします。 | raisefault.RF-ThrowError.failed = true | 
エラー レスポンスの例
{ "fault":{ "detail":{ "errorcode":"steps.raisefault.RaiseFault" }, "faultstring":"Raising fault. Fault name: [name]" } }
Regular Expression Protection ポリシー
このセクションでは、このポリシーによってエラーがトリガーされたときに返されるエラーコードとメッセージ、Edge によって設定される障害変数について説明します。これは、障害に対処する障害ルールを作成するうえで重要な情報です。エラーをキャプチャして独自のカスタムエラーを発生させる場合は、ポリシールート要素で continueOnError="true" 属性を設定します。詳細については、ポリシーエラーについて知っておくべきことと障害の処理をご覧ください。
Edge ポリシーから返されるエラーは、エラーコード リファレンスで説明されている一貫した形式に従います。
ランタイム エラー
このエラーは、ポリシーの実行時に発生することがあります。
| エラーコード | メッセージ | 
|---|---|
| ExecutionFailed | RegularExpressionProtection StepDefinition {0} を実行できませんでした。理由: {1} | 
| InstantiationFailed | RegularExpressionProtection StepDefinition {0} をインスタンス化できませんでした | 
| NonMessageVariable | 変数 {0} がメッセージに解決されません | 
| SourceMessageNotAvailable | {0} メッセージは RegularExpressionProtection StepDefinition {1} に使用できません | 
| ThreatDetected | {0} で検出された正規表現の脅威: regex: {1} 入力: {2} | 
| VariableResolutionFailed | 変数 {0} を解決できませんでした | 
デプロイエラー
| エラーコード | メッセージ | 解決方法 | 
|---|---|---|
| CannotBeConvertedToNodeset | RegularExpressionProtection {0}: xpath {1} の結果を nodeset に変換できません。コンテキスト {2} | build | 
| DuplicatePrefix | RegularExpressionProtection {0}: 重複接頭辞 {1} | build | 
| EmptyJSONPathExpression | RegularExpressionProtection {0}: 空の JSONPath 式 | build | 
| EmptyXPathExpression | RegularExpressionProtection {0}: 空の XPath 式 | build | 
| InvalidRegularExpression | RegularExpressionProtection {0}: 無効な正規表現 {1}、コンテキスト {2} | build | 
| JSONPathCompilationFailed | RegularExpressionProtection {0}: jsonpath {1} をコンパイルできませんでした。コンテキスト {2} | build | 
| NONEmptyPrefixMappedToEmptyURI | RegularExpressionProtection {0}: 空でない接頭辞 {1} を空の URI にマッピングできません。 | build | 
| NoPatternsToEnforce | RegularExpressionProtection {0}: {1} に適用するパターンはありません | build | 
| NothingToEnforce | RegularExpressionProtection {0}: URIPath、QueryParam、Header、FormParam、XMLPayload、JSONPayload の少なくとも 1 つが必須です | build | 
| XPathCompilationFailed | RegularExpressionProtection {0}: xpath {1} をコンパイルできませんでした。コンテキスト {2} | build | 
障害変数
このポリシーがエラーをトリガーした場合は、次の変数が設定されます。詳細については、ポリシーエラーについて知っておくべきことをご覧ください。
| 変数 | 説明 | 例 | 
|---|---|---|
| fault.name="fault_name" | fault_name は、上記の表に示されている障害の名前です。 | fault.name Matches "ThreatDetected" | 
| regularexpressionprotection.policy_name.failed | policy_name は、障害が発生したポリシーのユーザー指定の名前です。 | regularexpressionprotection.Regular-Expressions-Protection-1.failed = true | 
SOAP Message Validation ポリシー
このセクションでは、このポリシーによってエラーがトリガーされたときに返される障害コードとエラー メッセージ、Edge によって設定される障害変数について説明します。これは、障害に対処する障害ルールを作成するうえで重要な情報です。詳細については、ポリシーエラーについて知っておくべきことと障害の処理をご覧ください。
ランタイム エラー
このエラーは、ポリシーの実行時に発生することがあります。
| 障害コード | HTTP ステータス | 原因 | 解決方法 | 
|---|---|---|---|
| steps.messagevalidation.SourceMessageNotAvailable | 500 | このエラーは、ポリシーの  
 | build | 
| steps.messagevalidation.NonMessageVariable | 500 | このエラーは、SOAPMessageValidation ポリシーの  メッセージ型の変数は HTTP リクエストとレスポンス全体を表します。組み込みの Edge フロー変数  | build | 
| steps.messagevalidation.Failed | 500 | このエラーは、SOAPMessageValidation ポリシーが、XSD スキーマまたは WSDL 定義に対する入力メッセージ ペイロードを検証できなかった場合に発生します。また、ペイロード メッセージ内の JSON または XML の形式が正しくない場合にも発生します。 | build | 
デプロイエラー
以下のエラーは、このポリシーを含むプロキシをデプロイするときに発生することがあります。
| エラー名 | 原因 | 解決方法 | 
|---|---|---|
| InvalidResourceType | SOAPMessageValidation ポリシーの <ResourceURL>要素が、ポリシーでサポートされていないリソースタイプに設定されています。 | build | 
| ResourceCompileFailed | SOAPMessageValidation ポリシーの <ResourceURL>要素で参照されているリソース スクリプトに、コンパイルを妨げるエラーが含まれています。 | build | 
| RootElementNameUnspecified | SOAPMessageValidation ポリシーの <Element>要素にルート要素の名前が含まれていません。 | build | 
| InvalidRootElementName | SOAPMessageValidation ポリシーの <Element>要素に、有効な要素の命名に関する XML ルールに準拠していないルート要素名が含まれています。 | build | 
SAML Assertion ポリシー
このセクションでは、障害コードとエラー メッセージについて説明します。 このポリシーでエラーがトリガーされたときに Edge によって設定される障害変数。 これは、障害に対処する障害ルールを作成するうえで重要な情報です。詳細については、ポリシーエラーについて知っておくべきことと障害の処理をご覧ください。
デプロイエラー
以下のエラーは、このポリシーを含むプロキシをデプロイするときに発生することがあります。
| エラー名 | 原因 | 修正 | 
|---|---|---|
| SourceNotConfigured | Validate SAML Assertion ポリシーの <Source>、<XPath>、<Namespaces>、<Namespace>の要素のうち 1 つ以上が定義されていないか、空である。 | build | 
| TrustStoreNotConfigured | <TrustStore>要素が空である、または ValidateSAMLAssertion ポリシーで指定されていない場合、API プロキシのデプロイは失敗します。有効なトラストストアが必要です。 | build | 
| NullKeyStoreAlias | 子要素 <Alias>が空である、または Generate SAML Assertion ポリシーの<Keystore>要素で指定されていない場合、API プロキシのデプロイは失敗します。有効なキーストア エイリアスが必要です。 | build | 
| NullKeyStore | 子要素 <Name>が空であるか、<Keystore>で指定されていない場合
          GenerateSAMLAssertion ポリシーの要素、API のデプロイ、
          失敗します。有効なキーストア名が必要です。 | build | 
| NullIssuer | <Issuer>要素が空である、または Generate SAML Assertion ポリシーで指定されていない場合、API プロキシのデプロイは失敗します。有効な<Issuer>の値が必要です。 | build | 
障害変数
ランタイム エラーが発生すると、次の変数が設定されます。詳細については、ポリシーエラーについて知っておくべきことをご覧ください。
| 変数 | 説明 | 例 | 
|---|---|---|
| fault.name="fault_name" | fault_name は障害の名前です。障害名は、障害コードの最後の部分です。 | fault.name = "InvalidMediaTpe" | 
| GenerateSAMLAssertion.failed | 検証 SAML assertion ポリシー構成の場合、エラーの接頭辞は ValidateSAMLAssertionになります。 | GenerateSAMLAssertion.failed = true | 
エラー レスポンスの例
{ "fault": { "faultstring": "GenerateSAMLAssertion[GenSAMLAssert]: Invalid media type", "detail": { "errorcode": "steps.saml.generate.InvalidMediaTpe" } } }
障害ルールの例
<FaultRules>
    <FaultRule name="invalid_saml_rule">
        <Step>
            <Name>invalid-saml</Name>
        </Step>
        <Condition>(GenerateSAMLAssertion.failed = "true")</Condition>
    </FaultRule>
</FaultRules>Service Callout ポリシー
このセクションでは、このポリシーによってエラーがトリガーされたときに返される障害コードとエラー メッセージ、Edge によって設定される障害変数について説明します。 これは、障害に対処する障害ルールを作成するうえで重要な情報です。詳細については、ポリシーエラーについて知っておくべきことと障害の処理をご覧ください。
ランタイム エラー
このエラーは、ポリシーの実行時に発生することがあります。
| 障害コード | HTTP ステータス | 原因 | 修正 | 
|---|---|---|---|
| steps.servicecallout.ExecutionFailed | 500 | このエラーが発生するのは、次の場合です。 
 | build | 
| steps.servicecallout.RequestVariableNotMessageType | 500 | ポリシーで指定された Request 変数が Message 型ではありません。たとえば、文字列または他のメッセージ以外のタイプの場合、このエラーが表示されます。 | build | 
| steps.servicecallout.RequestVariableNotRequestMessageType | 500 | ポリシーで指定された Request 変数のタイプが Request Message ではありません。たとえば、Response タイプの場合、このエラーが表示されます。 | build | 
デプロイエラー
このポリシーを含むプロキシをデプロイするときに、これらのエラーが発生することがあります。
| エラー名 | 原因 | 修正 | 
|---|---|---|
| URLMissing | <HTTPTargetConnection>内の<URL>要素がないか、空です。 | build | 
| ConnectionInfoMissing | このエラーは、ポリシーに <HTTPTargetConnection>要素または<LocalTargetConnection>要素がない場合に発生します。 | build | 
| InvalidTimeoutValue | このエラーは、 <Timeout>の値が負の値またはゼロの場合に発生します。 | build | 
障害変数
ランタイム エラーが発生すると、次の変数が設定されます。詳細については、ポリシーエラーについて知っておくべきことをご覧ください。
| 変数 | 説明 | 例 | 
|---|---|---|
| fault.name="fault_name" | fault_name は、上記のランタイム エラーの表に記載されている障害の名前です。障害名は、障害コードの最後の部分です。 | fault.name = "RequestVariableNotMessageType" | 
| servicecallout.policy_name.failed | policy_name は、障害が発生したポリシーのユーザー指定の名前です。 | servicecallout.SC-GetUserData.failed = true | 
エラー レスポンスの例
{ "fault":{ "detail":{ "errorcode":"steps.servicecallout.RequestVariableNotMessageType" }, "faultstring":"ServiceCallout[ServiceCalloutGetMockResponse]: request variable data_str value is not of type Message" } }
障害ルールの例
<faultrule name="VariableOfNonMsgType"></faultrule><FaultRule name="RequestVariableNotMessageType">
    <Step>
        <Name>AM-RequestVariableNotMessageType</Name>
    </Step>
    <Condition>(fault.name = "RequestVariableNotMessageType")</Condition>
</FaultRule>Spike Arrest ポリシー
このセクションでは、障害コードとエラー メッセージ、障害変数について説明します。 このポリシーでエラーがトリガーされたときに Edge によって設定されます。 これは、障害に対処する障害ルールを作成するうえで重要な情報です。詳細については、ポリシーエラーについて知っておくべきことと障害の処理をご覧ください。
ランタイム エラー
このエラーは、ポリシーの実行時に発生することがあります。
| 障害コード | HTTP ステータス | 原因 | 修正 | 
|---|---|---|---|
| policies.ratelimit.FailedToResolveSpikeArrestRate | 500 | このエラーは、 <Rate>要素内のレート設定を含む変数への参照を、Spike Arrest ポリシー内の値に解決できない場合に発生します。この要素は必須であり、intpmまたはintpsの形式での Spike Arrest レートの指定に使用されます。 | build | 
| policies.ratelimit.InvalidMessageWeight | 500 | このエラーは、フロー変数で <MessageWeight>要素に指定された値が無効な場合(整数以外の値)場合に発生します。 | build | 
| policies.ratelimit.SpikeArrestViolation | 429 | レート制限を超えました。<ph type="x-smartling-placeholder">をご覧ください。 | 
デプロイエラー
以下のエラーは、このポリシーを含むプロキシをデプロイするときに発生することがあります。
| エラー名 | 原因 | 修正 | 
|---|---|---|
| InvalidAllowedRate | Spike Arrest ポリシーの <Rate>要素で指定されたスパイク停止率が整数でない場合、または停止率の接尾辞としてpsまたはpmが指定されていない場合は、API プロキシのデプロイは失敗します。 | build | 
障害変数
ランタイム エラーが発生すると、次の変数が設定されます。詳細については、ポリシーエラーについて知っておくべきことをご覧ください。
| 変数 | 説明 | 例 | 
|---|---|---|
| fault.name="fault_name" | fault_name は、上記のランタイム エラーの表に記載されている障害の名前です。障害名は、障害コードの最後の部分です。 | fault.name Matches "SpikeArrestViolation" | 
| ratelimit.policy_name.failed | policy_name は、障害が発生したポリシーのユーザー指定の名前です。 | ratelimit.SA-SpikeArrestPolicy.failed = true | 
エラー レスポンスの例
以下は、エラー レスポンスの例です。
{ "fault":{ "detail":{ "errorcode":"policies.ratelimit.SpikeArrestViolation" }, "faultstring":"Spike arrest violation. Allowed rate : 10ps" } }
障害ルールの例
以下は、SpikeArrestViolation 障害を処理する障害ルールの例です。
<FaultRules>
    <FaultRule name="Spike Arrest Errors">
        <Step>
            <Name>JavaScript-1</Name>
            <Condition>(fault.name Matches "SpikeArrestViolation") </Condition>
        </Step>
        <Condition>ratelimit.Spike-Arrest-1.failed=true</Condition>
    </FaultRule>
</FaultRules>Statistics Collector ポリシー
このセクションでは、このポリシーによってエラーがトリガーされたときに設定されるエラー メッセージとフロー変数について説明します。これは、プロキシの障害ルールを作成するうえで重要な情報です。詳細については、ポリシーエラーについて知っておくべきことと障害の処理をご覧ください。
ランタイム エラー
なし。
デプロイエラー
| エラー名 | 原因 | 修正 | 
|---|---|---|
| UnsupportedDatatype | Statistics Collector ポリシーの <Statistic>要素の ref 属性で指定された変数の型がサポートされていない場合、API プロキシのデプロイに失敗します。サポートされているデータ型は、string、integer、float、long、double、booleanです。 | build | 
| InvalidName | Statistics Collector ポリシーの <Statistic>要素に定義されている変数のデータを参照するために使用する名前がシステム定義の変数と競合する場合、API プロキシのデプロイに失敗します。既知のシステム定義の変数としては、organization、environmentなどがあります。 | build | 
| DatatypeMissing | Statistics Collector ポリシーの <Statistic>要素のref属性で指定された変数の型が見つからない場合、API プロキシのデプロイに失敗します。 | build | 
障害変数
なし。
Verify API Key ポリシー
このセクションでは、このポリシーによってエラーがトリガーされたときに返される障害コードとエラー メッセージ、Edge によって設定される障害変数について説明します。 これは、障害に対処する障害ルールを作成するうえで重要な情報です。詳細については、ポリシーエラーについて知っておくべきことと障害の処理をご覧ください。
ランタイム エラー
このエラーは、ポリシーの実行時に発生することがあります。
| 障害コード | HTTP ステータス | 原因 | 
|---|---|---|
| keymanagement.service.CompanyStatusNotActive | 401 | 使用している API キーを持つデベロッパー アプリに関連付けられている会社に、 非アクティブ ステータスです。会社のステータスが非アクティブに設定されると、 その会社に関連するデベロッパーやアプリ。組織管理者は会社のステータスを変更できます 管理 API を使用します。ステータスの設定 会社です。 | 
| keymanagement.service.DeveloperStatusNotActive | 401 | お客様が使用している API キーを持つデベロッパー アプリを作成したデベロッパーが非アクティブなステータスです。アプリ デベロッパーのステータスが非アクティブに設定されると、このデベロッパーが作成したすべてのデベロッパー アプリも無効になります。適切な権限のある管理ユーザー(組織管理者など)は、次の方法でデベロッパーのステータスを変更できます。 
 | 
| keymanagement.service.invalid_client-app_not_approved | 401 | API キーに関連付けられたデベロッパー アプリが取り消されています。取り消されたアプリは、 すべての API プロダクトにアクセスでき、Apigee Edge が管理する API を呼び出すことはできません。組織管理者は Management API を使用したデベロッパー アプリのステータスの変更。<ph type="x-smartling-placeholder"></ph>をご覧ください。 デベロッパー アプリの承認または取り消しをご覧ください。 | 
| oauth.v2.FailedToResolveAPIKey | 401 | ポリシーは、ポリシーの <APIKey> 要素で指定された変数の中で API キーを見つけることを想定しています。 このエラーは、想定した変数が存在しない(解決できない)ときに発生します。 | 
| oauth.v2.InvalidApiKey | 401 | Edge が API キーを受信しましたが、キーが無効です。Edge が鍵をルックアップして、 リクエストで送信されたものと完全に一致する必要があります。以前に機能していた API の場合は、キーが再生成されていないことを確認してください。キーが再生成されている場合に古いキーを使用しようとすると、このエラーが表示されます。詳しくは、アプリの登録と API の管理をご覧ください。 あります。 | 
| oauth.v2.InvalidApiKeyForGivenResource | 401 | API キーが Edge で受信され、かつ有効である。ただし、 プロダクトを通じて API プロキシに関連付けられたデベロッパー アプリの承認済みキー。 | 
デプロイエラー
以下のエラーは、このポリシーを含むプロキシをデプロイするときに発生することがあります。
| エラー名 | 原因 | 
|---|---|
| SpecifyValueOrRefApiKey | <APIKey>要素に値とキーが指定されていません。 | 
障害変数
ランタイム エラーが発生すると、次の変数が設定されます。詳細については、ポリシーエラーについて知っておくべきことをご覧ください。
| 変数 | 説明 | 例 | 
|---|---|---|
| fault.name="fault_name" | fault_name は、上記のランタイム エラーの表に記載されている障害の名前です。障害名は、障害コードの最後の部分です。 | fault.name Matches "FailedToResolveAPIKey" | 
| oauthV2.policy_name.failed | policy_name は、障害が発生したポリシーのユーザー指定の名前です。 | oauthV2.VK-VerifyAPIKey.failed = true | 
エラー レスポンスの例
{  
   "fault":{  
      "faultstring":"Invalid ApiKey",
      "detail":{  
         "errorcode":"oauth.v2.InvalidApiKey"
      }
   }
}{  
   "fault":{  
      "detail":{  
         "errorcode":"keymanagement.service.DeveloperStatusNotActive"
      },
      "faultstring":"Developer Status is not Active"
   }
}障害ルールの例
<FaultRule name="FailedToResolveAPIKey">
    <Step>
        <Name>AM-FailedToResolveAPIKey</Name>
    </Step>
    <Condition>(fault.name Matches "FailedToResolveAPIKey") </Condition>
</FaultRule>Verify JWS ポリシー
このセクションでは、このポリシーによってエラーがトリガーされたときに返される障害コードとエラー メッセージ、Edge によって設定される障害変数について説明します。これは、障害に対処する障害ルールを作成するうえで重要な情報です。詳細については、ポリシーエラーについて知っておくべきことと障害の処理をご覧ください。
ランタイム エラー
このエラーは、ポリシーの実行時に発生することがあります。
| 障害コード | HTTP ステータス | 発生条件 | 
|---|---|---|
| steps.jws.AlgorithmInTokenNotPresentInConfiguration | 401 | 検証ポリシーに複数のアルゴリズムがある場合。 | 
| steps.jws.AlgorithmMismatch | 401 | Generate ポリシーでヘッダーに指定されたアルゴリズムが、Verify ポリシーで想定されたアルゴリズムと一致しない場合。指定されたアルゴリズムは一致する必要があります。 | 
| steps.jws.ContentIsNotDetached | 401 | JWS に分離済みコンテンツ ペイロードが含まれているのに <DetachedContent>が指定されている場合。 | 
| steps.jws.FailedToDecode | 401 | ポリシーで JWS をデコードできなかった場合。JWS が破損している可能性があります。 | 
| steps.jws.InsufficientKeyLength | 401 | HS256 アルゴリズム用の鍵が 32 バイト未満の場合。 | 
| steps.jws.InvalidClaim | 401 | クレームが欠落しているか、一致していない場合。または、ヘッダーが欠落しているか、一致していない場合。 | 
| steps.jws.InvalidCurve | 401 | 鍵で指定された曲線が、楕円曲線アルゴリズムでは無効な場合。 | 
| steps.jws.InvalidJsonFormat | 401 | 無効な JSON が JWS ヘッダーで検出された場合。 | 
| steps.jws.InvalidJws | 401 | JWS 署名の検証で不合格だった場合。 | 
| steps.jws.InvalidPayload | 401 | JWS ペイロードが無効な場合。 | 
| steps.jws.InvalidSignature | 401 | <DetachedContent>が省略され、JWS に分離済みのコンテンツ ペイロードがある場合。 | 
| steps.jws.KeyIdMissing | 401 | Verify ポリシーが JWKS を公開鍵のソースとして使用するが、署名付き JWS にはヘッダーに kidプロパティが含まれてない場合。 | 
| steps.jws.KeyParsingFailed | 401 | 指定された鍵情報で公開鍵を解析できない場合。 | 
| steps.jws.MissingPayload | 401 | JWS ペイロードが欠落している場合。 | 
| steps.jws.NoAlgorithmFoundInHeader | 401 | JWS がアルゴリズム ヘッダーを省略すると発生します。 | 
| steps.jws.NoMatchingPublicKey | 401 | Verify ポリシーが JWKS を公開鍵のソースとして使用するが、署名付き JWS の kidは JWKS にリストされない場合。 | 
| steps.jws.UnhandledCriticalHeader | 401 | critヘッダーの Verify JWS ポリシーで見つかったヘッダーがKnownHeadersにリストされていない場合。 | 
| steps.jws.UnknownException | 401 | 不明な例外が発生した場合。 | 
| steps.jws.WrongKeyType | 401 | 鍵のタイプが正しくない場合。たとえば、楕円曲線アルゴリズムで RSA 鍵を指定した場合や、RSA アルゴリズムで曲線鍵を指定した場合など。 | 
デプロイエラー
以下のエラーは、このポリシーを含むプロキシをデプロイするときに発生することがあります。
| エラー名 | エラーが発生する条件 | 
|---|---|
| InvalidAlgorithm | 有効な値は、RS256、RS384、RS512、PS256、PS384、PS512、ES256、ES384、ES512、HS256、HS384、HS512 のみです。 | 
| 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | その他の発生の可能性があるデプロイエラー。 | 
障害変数
ランタイム エラーが発生すると、次の変数が設定されます。詳細については、ポリシーエラーについて知っておくべきことをご覧ください。
| 変数 | 説明 | 例 | 
|---|---|---|
| fault.name="fault_name" | fault_name は、上記のランタイム エラーの表に記載されている障害の名前です。障害名は、障害コードの最後の部分です。 | fault.name Matches "TokenExpired" | 
| JWS.failed | 障害の場合は、すべての JWS ポリシーで同じ変数が設定されます。 | jws.JWS-Policy.failed = true | 
エラー レスポンスの例
ベスト プラクティスとして、エラー処理でエラー レスポンスの errorcode の部分をトラップすることをおすすめします。faultstring のテキストには依存しないでください。この部分は変更される可能性があります。
障害ルールの例
<FaultRules>
    <FaultRule name="JWS Policy Errors">
        <Step>
            <Name>JavaScript-1</Name>
            <Condition>(fault.name Matches "TokenExpired")</Condition>
        </Step>
        <Condition>JWS.failed=true</Condition>
    </FaultRule>
</FaultRules>Verify JWT ポリシー
このセクションでは、このポリシーによってエラーがトリガーされたときに返される障害コードとエラー メッセージ、Edge によって設定される障害変数について説明します。これは、障害に対処する障害ルールを作成するうえで重要な情報です。詳細については、ポリシーエラーについて知っておくべきことと障害の処理をご覧ください。
ランタイム エラー
このエラーは、ポリシーの実行時に発生することがあります。
| 障害コード | HTTP ステータス | 発生条件 | 
|---|---|---|
| steps.jwt.AlgorithmInTokenNotPresentInConfiguration | 401 | 検証ポリシーに複数のアルゴリズムがある場合。 | 
| steps.jwt.AlgorithmMismatch | 401 | Generate ポリシーで指定されたアルゴリズムが、Verify ポリシーで想定されているアルゴリズムと一致しない場合。指定されたアルゴリズムが一致している必要があります。 | 
| steps.jwt.FailedToDecode | 401 | ポリシーで JWT をデコードできなかった場合。JWT が破損している可能性があります。 | 
| steps.jwt.GenerationFailed | 401 | ポリシーで JWT を生成できなかった場合。 | 
| steps.jwt.InsufficientKeyLength | 401 | HS256 アルゴリズムで鍵が 32 バイト未満の場合、HS386 アルゴリズムで鍵が 48 バイト未満の場合、HS512 アルゴリズムで鍵が 64 バイト未満の場合。 | 
| steps.jwt.InvalidClaim | 401 | クレームが欠落しているか、一致していない場合。または、ヘッダーが欠落しているか、一致していない場合。 | 
| steps.jwt.InvalidCurve | 401 | 鍵で指定された曲線が、楕円曲線アルゴリズムでは無効な場合。 | 
| steps.jwt.InvalidJsonFormat | 401 | ヘッダーまたはペイロードで無効な JSON が検出された場合。 | 
| steps.jwt.InvalidToken | 401 | JWT 署名の検証で不合格だった場合。 | 
| steps.jwt.JwtAudienceMismatch | 401 | トークンの検証でオーディエンス クレームが不合格だった場合。 | 
| steps.jwt.JwtIssuerMismatch | 401 | トークンの検証で発行元クレームが不合格だった場合。 | 
| steps.jwt.JwtSubjectMismatch | 401 | トークンの検証でサブジェクト クレームが不合格だった場合。 | 
| steps.jwt.KeyIdMissing | 401 | Verify ポリシーが公開鍵のソースとして JWKS を使用しているが、署名付き JWT のヘッダーに kidプロパティが含まれてない場合。 | 
| steps.jwt.KeyParsingFailed | 401 | 指定された鍵情報で公開鍵を解析できない場合。 | 
| steps.jwt.NoAlgorithmFoundInHeader | 401 | JWT にアルゴリズム ヘッダーが含まれていない場合。 | 
| steps.jwt.NoMatchingPublicKey | 401 | Verify ポリシーが JWKS を公開鍵のソースとして使用するが、署名付き JWT の kidが JWKS にリストされていない場合。 | 
| steps.jwt.SigningFailed | 401 | GenerateJWT で、HS384 または HS512 アルゴリズムの鍵が最小サイズより小さい場合。 | 
| steps.jwt.TokenExpired | 401 | ポリシーが期限切れのトークンを検証しようとしている場合。 | 
| steps.jwt.TokenNotYetValid | 401 | トークンがまだ有効になっていない場合。 | 
| steps.jwt.UnhandledCriticalHeader | 401 | critヘッダーの Verify JWT ポリシーで見つかったヘッダーがKnownHeadersにリストされていない場合。 | 
| steps.jwt.UnknownException | 401 | 不明な例外が発生した場合。 | 
| steps.jwt.WrongKeyType | 401 | 鍵のタイプが正しくない場合。たとえば、楕円曲線アルゴリズムで RSA 鍵を指定した場合や、RSA アルゴリズムで曲線鍵を指定した場合など。 | 
デプロイエラー
以下のエラーは、このポリシーを含むプロキシをデプロイするときに発生することがあります。
| エラー名 | 原因 | 修正 | 
|---|---|---|
| InvalidNameForAdditionalClaim | <AdditionalClaims>要素の子要素<Claim>で使用されているクレームの型が登録済みの名前(kid、iss、sub、aud、iat、exp、nbf、jti)のいずれかである場合、デプロイが失敗します。 | build | 
| InvalidTypeForAdditionalClaim | <AdditionalClaims>要素の子要素<Claim>で使用されているクレームがstring、number、boolean、map型でない場合、デプロイが失敗します。 | build | 
| MissingNameForAdditionalClaim | <AdditionalClaims>要素の子要素<Claim>でクレームの名前が指定されていない場合、デプロイが失敗します。 | build | 
| InvalidNameForAdditionalHeader | このエラーは、 <AdditionalClaims>要素の子要素<Claim>で使用されているクレームの名前がalgまたはtypの場合に発生します。 | build | 
| InvalidTypeForAdditionalHeader | <AdditionalClaims>要素の子要素<Claim>で使用されているクレームの型がstring、number、boolean、map型でない場合、デプロイが失敗します。 | build | 
| InvalidValueOfArrayAttribute | このエラーは、 <AdditionalClaims>要素の子要素<Claim>内の配列属性の値がtrueまたはfalseに設定されていない場合に発生します。 | build | 
| InvalidValueForElement | <Algorithm>要素に指定された値がサポートされていない場合、デプロイが失敗します。 | build | 
| MissingConfigurationElement | このエラーは、 <PrivateKey>要素が RSA ファミリー アルゴリズムで使用されていない場合や、<SecretKey>要素が HS ファミリー アルゴリズムで使用されていない場合に発生します。 | build | 
| InvalidKeyConfiguration | 子要素 <Value>が<PrivateKey>要素または<SecretKey>要素で定義されていない場合、デプロイが失敗します。 | build | 
| EmptyElementForKeyConfiguration | <PrivateKey>要素または<SecretKey>要素の子要素<Value>の ref 属性が空か、指定されていない場合、デプロイが失敗します。 | build | 
| InvalidConfigurationForVerify | このエラーは、 <Id>要素が<SecretKey>要素内で定義されている場合に発生します。 | build | 
| InvalidEmptyElement | このエラーは、Verify JWT ポリシーの <Source>要素が空の場合に発生します。存在する場合、Edge フロー変数名で定義する必要があります。 | build | 
| InvalidPublicKeyValue | <PublicKey>要素の子要素<JWKS>で使用されている値が、RFC 7517 で指定されている有効な形式になっていない場合、デプロイが失敗します。 | build | 
| InvalidConfigurationForActionAndAlgorithm | <PrivateKey>要素が HS ファミリー アルゴリズムで使用されている場合、または<SecretKey>要素が RSA ファミリー アルゴリズムで使用されている場合、デプロイが失敗します。 | build | 
障害変数
ランタイム エラーが発生すると、次の変数が設定されます。詳細については、ポリシーエラーについて知っておくべきことをご覧ください。
| 変数 | 説明 | 例 | 
|---|---|---|
| fault.name="fault_name" | fault_name は、上記のランタイム エラーの表に記載されている障害の名前です。障害コードの最後の部分が障害名になります。 | fault.name Matches "TokenExpired" | 
| JWT.failed | 障害の場合、すべての JWT ポリシーで同じ変数が設定されます。 | JWT.failed = true | 
エラー レスポンスの例
ベスト プラクティスとして、エラー処理では、エラー レスポンスの errorcode の部分をトラップすることをおすすめします。faultstring のテキストには依存しないでください。この部分は変更される可能性があります。
障害ルールの例
    <FaultRules>
        <FaultRule name="JWT Policy Errors">
            <Step>
                <Name>JavaScript-1</Name>
                <Condition>(fault.name Matches "TokenExpired")</Condition>
            </Step>
            <Condition>JWT.failed=true</Condition>
        </FaultRule>
    </FaultRules>
    XML Threat Protection ポリシー
このセクションでは、このポリシーによってエラーがトリガーされたときに返される障害コードとエラー メッセージ、Edge によって設定される障害変数について説明します。 これは、障害に対処する障害ルールを作成するうえで重要な情報です。詳細については、ポリシーエラーについて知っておくべきことと障害の処理をご覧ください。
ランタイム エラー
このエラーは、ポリシーの実行時に発生することがあります。
| 障害コード | HTTP ステータス | 原因 | 修正 | 
|---|---|---|---|
| steps.xmlthreatprotection.ExecutionFailed | 500 | XMLThreatProtection ポリシーでは、さまざまな種類の ExecutionFailed エラーをスローできます。 エラーのほとんどは、ポリシーで設定された特定のしきい値を超えた場合に発生します。これらの エラーには次のようなものがあります。 要素名の長さ 子数、 ノード深度、 属性数、 属性名の長さ その他多数詳細なリストについては、XMLThreatProtection ポリシーのランタイム エラーのトラブルシューティングをご覧ください。 | build | 
| steps.xmlthreatprotection.InvalidXMLPayload | 500 | このエラーは、XMLThreatProtection ポリシーの <Source>要素で指定された入力メッセージ ペイロードが有効な XML ドキュメントでない場合に発生します。 | build | 
| steps.xmlthreatprotection.SourceUnavailable | 500 | このエラーは、 <Source>要素で指定された メッセージ変数が次のいずれかである場合に発生します。
 | build | 
| steps.xmlthreatprotection.NonMessageVariable | 500 | このエラーは、 <Source>要素がメッセージ型以外の変数に設定されている場合に発生します。 | build | 
注:
- エラー名 ExecutionFailed は、デフォルトのエラー名であり、 検出されたエラーの種類このデフォルトは、優先度を設定することによって 組織レベルのプロパティです。このプロパティを設定すると、エラー名に実際の エラーが発生します。例: TextExceeded値に「AttrValueExceeded」があります。詳しくは、使用上の注意をご覧ください。
- 500 HTTP ステータスがデフォルトですが、組織レベルのプロパティを設定すると、リクエスト フローエラーの HTTP ステータスを 400 に変更できます。詳しくは、使用上の注意をご覧ください。
デプロイエラー
なし。
障害変数
ランタイム エラーが発生すると、次の変数が設定されます。詳細については、ポリシーエラーについて知っておくべきことをご覧ください。
| 変数 | 説明 | 例 | 
|---|---|---|
| fault.name="fault_name" | fault_name は、上記のランタイム エラーの表に記載されている障害の名前です。障害名は、障害コードの最後の部分です。 | fault.name Matches "SourceUnavailable" | 
| xmlattack.policy_name.failed | policy_name は、障害が発生したポリシーのユーザー指定の名前です。 | xmlattack.XPT-SecureRequest.failed = true | 
エラー レスポンスの例
{ "fault": { "faultstring": "XMLThreatProtection[XPT-SecureRequest]: Execution failed. reason: XMLThreatProtection[XTP-SecureRequest]: Exceeded object entry name length at line 2", "detail": { "errorcode": "steps.xmlthreatprotection.ExecutionFailed" } } }
障害ルールの例
<FaultRule name="XML Threat Protection Policy Faults">
    <Step>
        <Name>AM-CustomErrorResponse</Name>
        <Condition>(fault.name Matches "ExecutionFailed") </Condition>
    </Step>
    <Condition>(xmlattack.XPT-SecureRequest.failed = true) </Condition>
</FaultRule>XML to JSON ポリシー
このセクションでは、このポリシーによってエラーがトリガーされたときに返される障害コードとエラー メッセージ、Edge によって設定される障害変数について説明します。 これは、障害に対処する障害ルールを作成するうえで重要な情報です。詳細については、ポリシーエラーについて知っておくべきことと障害の処理をご覧ください。
ランタイム エラー
このエラーは、ポリシーの実行時に発生することがあります。
| 障害コード | HTTP ステータス | 原因 | 修正 | 
|---|---|---|---|
| steps.xmltojson.ExecutionFailed | 500 | このエラーは、入力ペイロード(XML)が空、入力 XML が無効、または形式が正しくない場合に発生します。 | build | 
| steps.xmltojson.InCompatibleType | 500 | このエラーは、 <Source>要素で定義された変数の型と、<OutputVariable>要素で定義された変数の型が異なる場合に発生します。<Source>要素に含まれる変数の型と、<OutputVariable>要素に含まれる変数の型は一致する必要があります。 | build | 
| steps.xmltojson.InvalidSourceType | 500 | このエラーは、 <Source>要素の定義に使用される変数の型が無効な場合に発生します。有効な変数の型は、message と String です。 | build | 
| steps.xmltojson.OutputVariableIsNotAvailable | 500 | このエラーは、XML to JSON ポリシーの <Source>要素で指定された変数が String 型であり、<OutputVariable>要素が定義されていない場合に発生します。<Source>要素で定義された変数が String 型の場合、<OutputVariable>要素は必須です。 | build | 
| steps.xmltojson.SourceUnavailable | 500 | このエラーは、XML to JSON ポリシーの <Source>要素で指定された message 変数が、次のいずれかである場合に発生します。
 | build | 
デプロイエラー
以下のエラーは、このポリシーを含むプロキシをデプロイするときに発生することがあります。
| エラー名 | 原因 | 修正 | 
|---|---|---|
| EitherOptionOrFormat | <Options>または<Format>のいずれかの要素が XML to JSON ポリシーに宣言されていない場合、API プロキシのデプロイは失敗します。 | build | 
| UnknownFormat | XML to JSON ポリシー内の <Format>要素に不明な形式が定義されている場合、API プロキシのデプロイは失敗します。事前定義された形式には、xml.com、yahoo、google、badgerFishがあります。 | build | 
障害変数
ランタイム エラーが発生すると、次の変数が設定されます。詳細については、ポリシーエラーについて知っておくべきことをご覧ください。
| 変数 | 説明 | 例 | 
|---|---|---|
| fault.name="fault_name" | fault_name は、上記のランタイム エラーの表に記載されている障害の名前です。障害名は、障害コードの最後の部分です。 | fault.name = "SourceUnavailable" | 
| xmltojson.policy_name.failed | policy_name は、障害が発生したポリシーのユーザー指定の名前です。 | xmltojson.XMLtoJSON-1.failed = true | 
エラー レスポンスの例
{ "fault": { "faultstring": "XMLToJSON[XMLtoJSON-1]: Source xyz is not available", "detail": { "errorcode": "steps.xml2json.SourceUnavailable" } } }
障害ルールの例
<faultrule name="VariableOfNonMsgType"></faultrule><FaultRule name="XML to JSON Faults"> <Step> <Name>AM-SourceUnavailableMessage</Name> <Condition>(fault.name Matches "SourceUnavailable") </Condition> </Step> <Step> <Name>AM-BadXML</Name> <Condition>(fault.name = "ExecutionFailed")</Condition> </Step> <Condition>(xmltojson.XMLtoJSON-1.failed = true) </Condition> </FaultRule>
XSL Transform ポリシー
ランタイム エラー
このエラーは、ポリシーの実行時に発生することがあります。
| 障害コード | HTTP ステータス | 原因 | 解決方法 | 
|---|---|---|---|
| steps.xsl.XSLSourceMessageNotAvailable | 500 | このエラーは、XSL Transform ポリシーの <Source>要素で指定されたメッセージまたは文字列変数がスコープ外である(ポリシーが実行されている特定のフローで使用できない)か、解決できない(定義されていない)場合に発生します。 | build | 
| steps.xsl.XSLEvaluationFailed | 500 | このエラーは、入力 XML ペイロードが使用できない、または不正な形式の場合、または XSLTransform ポリシーが XSL ファイルに指定された変換ルールに基づいた入力 XML ファイルの変換に失敗する、または変換できない場合に発生します。XSLTransform ポリシーは、さまざまな原因で失敗します。エラー メッセージに含まれている失敗の理由から、原因についてより詳しい情報を得ることができます。 | build | 
デプロイエラー
以下のエラーは、このポリシーを含むプロキシをデプロイするときに発生することがあります。
| エラー名 | 原因 | 解決方法 | 
|---|---|---|
| XSLEmptyResourceUrl | XSL Transform ポリシーの <ResourceURL>要素が空の場合、API プロキシのデプロイは失敗します。 | build | 
| XSLInvalidResourceType | XSL Transform ポリシーの <ResourceURL>要素に指定されたリソースタイプがxslでない場合、API プロキシのデプロイは失敗します。 | build |