現在、Apigee と Apigee ハイブリッドのドキュメントを表示しています。
Apigee Edge のドキュメントを表示する
InvalidTimeout
エラー メッセージ
Apigee UI または API を使用した API プロキシのデプロイに失敗すると、次のエラー メッセージが表示されます。
Error Saving Revision revision_number CacheLookupTimeoutInSeconds value value should be greater than zero.
エラー メッセージの例
Error Saving Revision 2
CacheLookupTimeoutInSeconds -1 value should be greater than zero.
エラーのスクリーンショットの例
原因
ResponseCache ポリシーの <CacheLookupTimeoutInSeconds>
要素が負の数に設定されている場合、API プロキシのデプロイは失敗します。
たとえば、<CacheLookupTimeoutInSeconds>
が -1
である場合、API プロキシのデプロイは失敗します。
診断
ResponseCache ポリシーで
<CacheLookupTimeoutInSeconds>
要素に使用されている無効な値を識別します。この情報はエラー メッセージにあります。たとえば、次のエラーでは、<CacheLookupTimeoutInSeconds>
要素の無効な値は-1
です。CacheLookupTimeoutInSeconds -1 value should be greater than zero.
エラーが発生した特定の API プロキシで、すべての ResponseCache ポリシーを調べます。
<CacheLookupTimeoutInSeconds>
要素が指定された ResponseCache ポリシーが 1 つ以上存在する可能性があります。たとえば、次のポリシー構成では、
<CacheLookupTimeoutInSeconds>
が-1
に設定されます。これは、エラー メッセージの内容と一致します。<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <ResponseCache async="false" continueOnError="false" enabled="true" name="Response-Cache-1"> <DisplayName>Response Cache-1</DisplayName> <Properties/> <CacheKey> <Prefix/> <KeyFragment ref="request.uri" type="string"/> </CacheKey> <Scope>Exclusive</Scope> <ExpirySettings> <ExpiryDate/> <TimeOfDay/> <TimeoutInSec ref="">3600</TimeoutInSec> </ExpirySettings> <CacheLookupTimeoutInSeconds>-1</CacheLookupTimeoutInSeconds> </ResponseCache>
<CacheLookupTimeoutInSeconds>
が負の整数として指定されている場合、それがエラーの原因です。
解決策
ResponseCache ポリシーの <CacheLookupTimeoutInSeconds>
要素の値を、必ず負でない整数として指定するようにします。
上に示した ResponseCache ポリシーの例を修正するには、<CacheLookupTimeoutInSeconds> element
を 30
に変更します。
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ResponseCache async="false" continueOnError="false" enabled="true" name="Response-Cache-1">
<DisplayName>Response Cache-1</DisplayName>
<Properties/>
<CacheKey>
<Prefix/>
<KeyFragment ref="request.uri" type="string"/>
</CacheKey>
<Scope>Exclusive</Scope>
<ExpirySettings>
<ExpiryDate/>
<TimeOfDay/>
<TimeoutInSec ref="">3600</TimeoutInSec>
</ExpirySettings>
<CacheLookupTimeoutInSeconds>30</CacheLookupTimeoutInSeconds>
</ResponseCache>
InvalidCacheResourceReference
エラー メッセージ
Apigee UI または API を使用した API プロキシのデプロイに失敗すると、次のエラー メッセージが表示されます。
Error Deploying Revision revision_number to environment Invalid cache resource reference cache_resource in Step definition response_cache_policy_name. Context Revision:revision_number;APIProxy:ResponseCache;Organization:organization;Environment:environment
エラー メッセージの例
Error Deploying Revision 2 to prod
Invalid cache resource reference itemscache in Step definition ItemsResponseCache. Context Revision:2;APIProxy:StoresInventory;Organization:kkalckstein-eval;Environment:prod
エラーのスクリーンショットの例
原因
このエラーは、API プロキシがデプロイされている環境に存在しない名前が ResponseCache ポリシーの <CacheResource>
要素に設定されている場合に発生します。
診断
Response Cache ポリシーの
<CacheResource>
要素で使用されている無効なキャッシュと、エラーが発生した環境を特定します。どちらの項目もエラー メッセージで確認できます。たとえば、次のエラーでは、無効なキャッシュの名前はitemscache
、環境名はprod
です。Invalid cache resource reference itemscache in Step definition ItemsResponseCache. Context Revision:2;APIProxy:StoresInventory;Organization:kkalckstein-eval;Environment:prod
エラーが発生した特定の API プロキシで、すべての ResponseCache ポリシーを調べます。
<CacheResource>
要素で無効なキャッシュ(ステップ 1 で特定)が指定されている特定の ResponseCache ポリシーを特定します。たとえば、次のポリシーでは
<CacheResource>
の値をitemscache
として指定します。これはエラー メッセージの内容と一致します。<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <ResponseCache async="false" continueOnError="false" enabled="true" name="ItemsResponseCache"> <DisplayName>ItemsResponseCache</DisplayName> <Properties/> <CacheKey> <Prefix/> <KeyFragment ref="request.uri" type="string"/> </CacheKey> <CacheResource>itemscache</CacheResource> <Scope>Exclusive</Scope> <ExpirySettings> <ExpiryDate/> <TimeOfDay/> <TimeoutInSec ref="">3600</TimeoutInSec> </ExpirySettings> <SkipCacheLookup/> <SkipCachePopulation/> </ResponseCache>
ステップ 2 で確認したキャッシュが、ステップ 1 で特定された固有の環境で定義されているかどうかを確認します。
Apigee UI で、[API] > [Environment] > [Configuration] に移動し、特定の環境の [Caches] タブにキャッシュが存在するかどうかを確認します。キャッシュが存在しない場合、それがエラーの原因です。
たとえば、次のスクリーンショットでは、
itemscache
という名前のキャッシュは存在しません。itemscache
という名前のキャッシュがprod
環境で定義されていないため、次のエラーが発生します。Invalid cache resource reference does_not_exist in Step definition Response-Cache-1. Context Revision:2;APIProxy:ResponseCache;Organization:kkalckstein-eval;Environment:prod
解決策
API プロキシをデプロイする環境で、<CacheResource>
要素で指定されたキャッシュ名が作成されていることを確認します。
ResponseCacheStepAttachmentNotAllowedReq
エラー メッセージ
Apigee UI または API を使用した API プロキシのデプロイに失敗すると、次のエラー メッセージが表示されます。
Error Deploying Revision revision_number to environment Response cache step definition response_cache_policy_name can not be attached more than once in the request path.
エラー メッセージの例
Error Deploying Revision 2 to test
Response cache step definition Response-Cache-1 can not be attached more than once in the request path.
エラーのスクリーンショットの例
原因
このエラーは、同じ ResponseCache ポリシーが API プロキシの任意のフロー内の複数のリクエストパスに接続された場合に発生します。
たとえば、同じ ResponseCache ポリシーをプロキシ エンドポイントとターゲット エンドポイントの両方のリクエスト Preflow に接続すると、このエラーが発生します。
診断
複数回接続されている ResponseCache ポリシーの名前を特定します。この情報はエラー メッセージにあります。たとえば、次のエラーでは、ResponseCache ポリシーの名前は Response‑Cache‑1 です。
Error Deploying Revision 2 to test Response cache step definition Response-Cache-1 can not be attached more than once in the request path.
エラーが発生した API プロキシのプロキシ エンドポイントおよびターゲット エンドポイント内のすべてのリクエスト フローを調べます。同じ ResponseCache ポリシーが 2 つ以上のリクエスト フローに接続されている場合、それがエラーの原因です。
次の例では、デフォルトのプロキシ エンドポイント PreFlow と、デフォルトのターゲット エンドポイント PreFlow のリクエストパスで、同じ ResponseCache ポリシー
Response-Cache-1
が構成されています。<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <ProxyEndpoint name="default"> <Description/> <FaultRules/> <PreFlow name="PreFlow"> <Request> <Step> <Name>Response-Cache-1</Name> </Step> </Request> ... <?xml version="1.0" encoding="UTF-8" standalone="yes"?> <TargetEndpoint name="default"> <Description/> <FaultRules/> <PreFlow name="PreFlow"> <Request/> <Response/> </PreFlow> <PostFlow name="PostFlow"> <Request> <Step> <Name>Response-Cache-1</Name> </Step> </Request> ...
解決策
1 つの ResponseCache ポリシーが、API プロキシのすべてのフローにわたり必ず 1 つのリクエストパスにのみ接続されているようにします。
上記の例を修正するには、2 つのリクエスト フローのいずれか 1 つから ResponseCache ポリシー Response-Cache-1
を削除します。
ResponseCacheStepAttachmentNotAllowedResp
エラー メッセージ
Apigee UI または API を使用した API プロキシのデプロイに失敗すると、次のエラー メッセージが表示されます。
Error Deploying Revision revision_number to environment Response cache step definition response_cache_policy_name can not be attached more than once in the response path.
エラー メッセージの例
Error Deploying Revision 2 to test
Response cache step definition Response-Cache-1 can not be attached more than once in the response path.
エラーのスクリーンショットの例
原因
このエラーは、同じ ResponseCache ポリシーが API プロキシの任意のフロー内の複数のレスポンスパスに接続されている場合に発生します。
たとえば、同じ ResponseCache ポリシーをプロキシ エンドポイントとターゲット エンドポイントの両方のレスポンス Preflow に接続すると、このエラーが発生します。
診断
複数回接続されている ResponseCache ポリシーの名前を特定します。この情報はエラー メッセージにあります。たとえば、次のエラーでは、ResponseCache ポリシーの名前は
Response-Cache-1
です。Error Deploying Revision 2 to test Response cache step definition Response-Cache-1 can not be attached more than once in the response path.
エラーが発生した API プロキシのプロキシ エンドポイントおよびターゲット エンドポイント内のすべてのリクエスト フローを調べます。同じ ResponseCache ポリシーが 2 つ以上のレスポンス フローに接続されている場合、それがエラーの原因です。
次の例では、デフォルトのプロキシ エンドポイント PreFlow とデフォルトのターゲット エンドポイント PreFlow のレスポンスパスに同じ ResponseCache ポリシー
Response-Cache-1
が構成されています。<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <ProxyEndpoint name="default"> <Description/> <FaultRules/> <PreFlow name="PreFlow"> <Request> <Step> <Name>Response-Cache</Name> </Step> </Request> <Response> <Step> <Name>Response-Cache-1</Name> </Step> </Response> </PreFlow> ... <?xml version="1.0" encoding="UTF-8" standalone="yes"?> <TargetEndpoint name="default"> <Description/> <FaultRules/> <PreFlow name="PreFlow"> <Request/> <Response/> </PreFlow> <PostFlow name="PostFlow"> <Request/> <Response> <Step> <Name>Response-Cache-1</Name> </Step> </Response> </PostFlow> ...
解決策
1 つの ResponseCache ポリシーが、API プロキシのすべてのフローにわたり必ず 1 つのレスポンスパスにのみ接続されているようにします。
上記の例を修正するには、2 つのレスポンスパスのいずれか 1 つから ResponseCache ポリシー Response-Cache-1
を削除します。
InvalidMessagePatternForErrorCode
エラー メッセージ
Apigee UI または API を使用した API プロキシのデプロイに失敗すると、次のエラー メッセージのいずれかが表示されます。
Error Deploying Revision revision_number to environment Invalid message pattern found for error code steps.cache.InvalidSkipCacheLookUpCondition.
または
Error Deploying Revision revision_number to environment Invalid message pattern found for error code steps.cache.InvalidSkipCachePopulationCondition.
エラー メッセージの例
Error Deploying Revision 2 to prod
Invalid message pattern found for error code steps.cache.InvalidSkipCacheLookUpCondition.
または
Error Deploying Revision 2 to prod
Invalid message pattern found for error code steps.cache.InvalidSkipCachePopulationCondition.
エラーのスクリーンショットの例
または
原因
このエラーは、ResponseCache ポリシーの <SkipCacheLookup>
要素と <SkipCachePopulation>
要素のいずれかに無効な条件が含まれている場合に発生します。
診断
エラーが発生した API プロキシのすべての ResponseCache ポリシーを調べ、
<SkipCacheLookup>
要素または<SkipCachePopulation>
要素に条件が指定されているポリシーがあるかどうかを確認します。<SkipCacheLookup>
要素または<SkipCachePopulation>
要素に指定された条件が無効であるかどうかを確認します。呼び出している場合は、それがエラーの原因です。次の例では、
<SkipCachePopulation>
要素で JavaScript 演算子 === を使用し、無効な等しい値と等しい種類を確認します。<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <ResponseCache async="false" continueOnError="false" enabled="true" name="Response-Cache-1"> <DisplayName>Response Cache-1</DisplayName> <Properties/> <CacheKey> <Prefix/> <KeyFragment ref="request.uri" type="string"/> </CacheKey> <Scope>Exclusive</Scope> <ExpirySettings> <ExpiryDate/> <TimeOfDay/> <TimeoutInSec ref="">3600</TimeoutInSec> </ExpirySettings> <CacheLookupTimeoutInSeconds>2</CacheLookupTimeoutInSeconds> <SkipCacheLookup>request.header.bypass-cache === "true"</SkipCacheLookup> </ResponseCache>
演算子
===
が無効なため、次のエラーが発生します。Invalid message pattern found for error code steps.cache.InvalidSkipCacheLookUpCondition.
解決策
<SkipCacheLookup>
要素や <SkipCachePopulation>
要素に指定された条件が常に有効であることを確認します。
上に示した ResponseCache ポリシーの例を修正するには、=
演算子を使用するように <SkipCacheLookup>
を変更します。
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ResponseCache async="false" continueOnError="false" enabled="true" name="Response-Cache-1">
<DisplayName>Response Cache-1</DisplayName>
<Properties/>
<CacheKey>
<Prefix/>
<KeyFragment ref="request.uri" type="string"/>
</CacheKey>
<Scope>Exclusive</Scope>
<ExpirySettings>
<ExpiryDate/>
<TimeOfDay/>
<TimeoutInSec ref="">3600</TimeoutInSec>
</ExpirySettings>
<CacheLookupTimeoutInSeconds>2</CacheLookupTimeoutInSeconds>
<SkipCacheLookup>request.header.bypass-cache = "true"</SkipCacheLookup>
</ResponseCache>
CacheNotFound
エラー メッセージ
Apigee UI または API による API プロキシのデプロイで、次のようなエラー メッセージが表示され、API プロキシのデプロイ ステータスは部分的にデプロイされたものとしてマークされます。
Error: Cache : cache_resource, not found in organization : organization__environment.
エラー メッセージの例
Error Cache : Response-Cache-1, not found in organization : kkalckstein-eval__prod
原因
このエラーは、エラー メッセージに記述されているキャッシュが、特定の Message Processor コンポーネント上に作成されていない場合に発生します。
解決策
Apigee サポートまでお問い合わせください。