Lookup Cache ポリシーのデプロイエラーのトラブルシューティング

現在、ApigeeApigee ハイブリッドのドキュメントを表示しています。
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.

エラーのスクリーンショットの例

リビジョン 2 の保存エラー。

原因

LookupCache ポリシー<CacheLookupTimeoutInSeconds> 要素が負の数に設定されていると、API プロキシのデプロイは失敗します。

たとえば、<CacheLookupTimeoutInSeconds> 要素が -1 の場合、API プロキシのデプロイは失敗します。

診断

  1. LookupCache ポリシー<CacheLookupTimeoutInSeconds> 要素に指定された無効な値を特定します。この情報はエラー メッセージで確認できます。たとえば、次のエラーで <CacheLookupTimeoutInSeconds> 要素に使用されている無効な値は -1 です。

    CacheLookupTimeoutInSeconds -1 value should be greater than zero.
    
  2. エラーが発生した特定の 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>
    
  3. <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

エラー メッセージ

Apigee UI または 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

エラーのスクリーンショットの例

テストするリビジョン 2 のデプロイエラー。

原因

このエラーは、API プロキシがデプロイされている環境に存在しない名前が <CacheResource> 要素に設定されている場合に発生します。

診断

  1. LookupCache ポリシー<CacheResource> 要素で使用されている無効なキャッシュと、エラーが発生した環境を特定します。どちらの項目もエラー メッセージで確認できます。たとえば、次のエラーでは、無効なキャッシュの名前は tokencache、環境名は test です。

    Invalid cache resource reference tokencache in Step definition LookupCache-Token. Context Revision:2;APIProxy:TestCache;Organization:kkalckstein-eval;Environment:test
    
  2. エラーが発生した特定の 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>
    
  3. 手順 1 で確認したキャッシュが、手順 1 で特定した固有の環境で定義されているかどうかを確認します。

    Apigee UI で、[Admin] > [Environment] > [test] に移動し、[Environment Configuration] の [Caches] タブにキャッシュが存在するかどうかを確認します。キャッシュが存在しない場合、それがエラーの原因です。

    たとえば、次のスクリーンショットでは、tokencache という名前のキャッシュは存在しません。

    [Environment Configuration Caches] タブ。

    tokencache という名前のキャッシュが test 環境で定義されていないため、次のエラーが発生します。

    Invalid cache resource reference tokencache in Step definition LookupCache-Token. Context Revision:2;APIProxy:TestCache;Organization:kkalckstein-eval;Environment:test
    
    

解決策

API プロキシをデプロイする環境で、<CacheResource> 要素で指定されたキャッシュ名が作成されていることを確認します。

CacheNotFound

エラー メッセージ

Apigee UI または 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 コンポーネント上に作成されていない場合に発生します。

解決策

Apigee サポートまでお問い合わせください。