InvalidTimeout
エラー メッセージ
Edge UI または Edge 管理 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.
エラーのスクリーンショットの例
原因
LookupCache ポリシーの <CacheLookupTimeoutInSeconds>
要素が負の数に設定されている場合、API プロキシのデプロイは失敗します。
たとえば、<CacheLookupTimeoutInSeconds>
要素が -1
場合、API プロキシのデプロイは失敗します。
診断
LookupCache ポリシーの
<CacheLookupTimeoutInSeconds>
要素に指定された無効な値を特定します。この情報はエラー メッセージから見つけることができます。たとえば、次のエラーでは、<CacheLookupTimeoutInSeconds>
要素に対して使用されている無効な値は-1
です。CacheLookupTimeoutInSeconds -1 value should be greater than zero.
エラーが発生した特定の API プロキシで、すべての LookupCache ポリシーを調べます。
<CacheLookupTimeoutInSeconds>
要素が指定された LookupCache ポリシーが 1 つ以上存在する可能性もあります。<CacheLookupTimeoutInSeconds>
要素に無効な値(上記のステップ 1 で特定されているもの)が指定されている LookUpCache ポリシーを特定します。たとえば、次のポリシー構成では、
<CacheLookupTimeoutInSeconds>
値が-1
に指定されており、これはエラー メッセージの内容と一致します。<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <LookupCache async="false" continueOnError="false" enabled="true" name="LookupCache-Token"> <DisplayName>LookupCache-Token</DisplayName> <Properties/> <CacheKey> <Prefix/> <KeyFragment ref="request.queryparam.client_id"/> </CacheKey> <CacheLookupTimeoutInSeconds>-1</CacheLookupTimeoutInSeconds> <Scope>Exclusive</Scope> <ExpirySettings> <TimeoutInSec>3600</TimeoutInSec> </ExpirySettings> <AssignTo>usertoken</AssignTo> </LookupCache>
<CacheLookupTimeoutInSeconds>
が負の整数として指定されている場合、それがエラーの原因です。
解決策
LookupCache ポリシーの <CacheLookupTimeoutInSeconds>
要素の値が、負でない整数として必ず指定するようにします。
上記の LookupCache ポリシーの例を修正するには、<CacheLookupTimeoutInSeconds>
要素を 30
に変更します。
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<LookupCache async="false" continueOnError="false" enabled="true" name="LookupCache-Token">
<DisplayName>LookupCache-Token</DisplayName>
<Properties/>
<CacheKey>
<Prefix/>
<KeyFragment ref="request.queryparam.client_id"/>
</CacheKey>
<CacheResource>tokencache</CacheResource>
<CacheLookupTimeoutInSeconds>30</CacheLookupTimeoutInSeconds>
<Scope>Exclusive</Scope>
<ExpirySettings>
<TimeoutInSec>3600</TimeoutInSec>
</ExpirySettings>
<AssignTo>usertoken</AssignTo>
</LookupCache>
InvalidCacheResourceReference
エラー メッセージ
Edge UI または Edge 管理 API を使用した API プロキシのデプロイに失敗し、次のエラー メッセージが表示されます。
Error Deploying Revision revision_number to environment Invalid cache resource reference [cache_resource] in Step definition [populate_cache_policy_name]. Context Revision:[revision_number];APIProxy:ResponseCache;Organization:[organization];Environment:[environment]
エラー メッセージの例
Error Deploying Revision 2 to test
Invalid cache resource reference tokencache in Step definition LookupCache-Token. Context Revision:2;APIProxy:TestCache;Organization:kkalckstein-eval;Environment:test
エラーのスクリーンショットの例
原因
このエラーは、<CacheResource>
要素が、API プロキシがデプロイされている環境に存在しない名前に設定されている場合に発生します。
診断
LookupCache ポリシーの
<CacheResource>
要素で使用されている無効なキャッシュと、エラーが発生した環境を特定します。これらの両方の項目は、エラー メッセージの中から見つけることができます。たとえば、次のエラーでは、無効なキャッシュの名前はtokencache
で、環境名はtest
です。Invalid cache resource reference tokencache in Step definition LookupCache-Token. Context Revision:2;APIProxy:TestCache;Organization:kkalckstein-eval;Environment:test
エラーが発生した特定の API プロキシで、すべての LookupCache ポリシーを調べます。
<CacheResource>
要素で無効なキャッシュ(ステップ 1 で識別される)が指定されている特定の LookupCache ポリシーを特定します。たとえば、次のポリシーでは、
<CacheResource>
の値をtokencache
として指定しており、これはエラー メッセージの内容と一致します。<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <LookupCache async="false" continueOnError="false" enabled="true" name="LookupCache-Token"> <DisplayName>LookupCache-Token</DisplayName> <Properties/> <CacheKey> <Prefix/> <KeyFragment ref="request.queryparam.client_id"/> </CacheKey> <CacheResource>tokencache</CacheResource> <CacheLookupTimeoutInSeconds/> <Scope>Exclusive</Scope> <ExpirySettings> <TimeoutInSec>3600</TimeoutInSec> </ExpirySettings> <AssignTo>usertoken</AssignTo> </LookupCache>
(ステップ 1 で判別した)キャッシュが、(ステップ 1 で特定された)特定の環境で定義されているかどうかを確認します。
Edge UI で、[ADMIN] > [Environment] > [test] に移動し、[Environment Configuration] の [Caches] タブにキャッシュが存在するかどうかを確認します。キャッシュが存在しない場合は、それがエラーの原因です。
たとえば、以下のスクリーンショットでは、
tokencache
という名前のキャッシュが存在しないことがわかります。tokencache
という名前のキャッシュがtest
環境で定義されていないため、次のエラーが発生します。Invalid cache resource reference tokencache in Step definition LookupCache-Token. Context Revision:2;APIProxy:TestCache;Organization:kkalckstein-eval;Environment:test
解決策
<CacheResource>
要素で指定されたキャッシュ名が、API プロキシをデプロイする環境で作成されているようにします。
キャッシュの作成方法については、環境キャッシュの作成と編集をご覧ください。
CacheNotFound
エラー メッセージ
Edge UI または Edge 管理 API を使用した API プロキシのデプロイで、次のようなエラー メッセージが表示され、API プロキシのデプロイ ステータスは部分的にデプロイされたものとしてマークされます。
Error: Cache : cache_resource, not found in organization : organization__environment.
エラー メッセージの例
Error Cache : configCache, not found in organization : kkalckstein-eval__test
原因
このエラーは、エラー メッセージに記載されている特定のキャッシュが特定の Message Processor コンポーネント上に作成されていない場合に発生します。
解決策
Private Cloud ユーザーは、次の手順に従います。
デプロイ管理 API を実行し、どの Message Processor にエラー
steps.cache.CacheNotFound
があるかを判別します。curl -u $USERID:$USERPASSWORD http://
:8080/v1/organizations/ /environments/ /apis/ /revisions/ /deployments 出力例
{ "aPIProxy" : "TestCache", "environment" : [ { "configuration" : { "basePath" : "/", "configVersion" : "SHA-512:45d3f39783414d3859bf2dec4135d8f5f9960ee6b2d361db2799c82693a8e3f8b95dbbb37c547eb3c0a3819d8ca51727f390502bcaefdf1f113263521a9023b6", "steps" : [ ] }, "name" : "prod", "server" : [ { "pod" : { "name" : "pod1", "region" : "us-central1" }, "status" : "deployed", "type" : [ "message-processor" ], "uUID" : "f2e5e34a-5630-43a9-8fef-48a5b9da76d1" }, { "pod" : { "name" : "pod1", "region" : "us-central1" }, "status" : "deployed", "type" : [ "message-processor" ], "uUID" : "879a6538-a5e0-4503-b142-9cb2b4e0623d" }, { "error" : "Cache : configCache, not found in organization : kkalckstein-eval__test", "errorCode" : "steps.cache.CacheNotFound", "status" : "error", "type" : [ "message-processor" ], "uUID" : "a8f9ce0b-c32d-48a9-b26c-9c75d8bf467d" }, ... "state" : "deployed" } ], "name" : "2", "organization" : "kkalckstein-eval" ...
エラー
steps.cache.CacheNotFound
が発生した Message Processor の UUID をメモします。その UUID に関連付けられている Message Processor のホスト名 / IP アドレスを特定します。特定の Message Processor にログインし、次のコマンドを使用して再起動します。
apigee-service edge-message-processor restart
Public Cloud ユーザーである場合、または Private Cloud で問題が解決しない場合は、Apigee サポートに連絡して支援を求めてください。