InvalidCacheResourceReference
エラー メッセージ
Edge UI または Edge 管理 API で API プロキシのデプロイに失敗し、次のエラー メッセージが表示されます。
    Error Deploying Revision revision_number to environment
    Invalid cache resource reference [cache_resource] in Step definition [invalidate_cache_policy_name]. Context Revision:[revision_number];APIProxy:[apiproxy_name];Organization:[organization];Environment:[environment]
    エラー メッセージの例
Error Deploying Revision 2 to test
    Invalid cache resource reference tokencache in Step definition InvalidateCache-Token. Context Revision:2;APIProxy:TestCache;Organization:kkalckstein-eval;Environment:test
    エラーのスクリーンショットの例

原因
API プロキシがデプロイされている環境に存在しない名前が InvalidateCache ポリシーの <CacheResource> 要素に設定されていると、このエラーが発生します。
診断
- InvalidateCache ポリシー名、InvalidateCache ポリシーの - <CacheResource>要素で使用されている無効なキャッシュ、エラーが発生した環境を特定します。これらはすべてエラー メッセージで確認できます。たとえば、次のエラーの場合、- InvalidateCache-Tokenが InvalidateCache ポリシー名、- tokencacheが無効なキャッシュ名、- testが環境名です。- Invalid cache resource reference tokencache in Step definition InvalidateCache-Token. Context Revision:2;APIProxy:TestCache;Organization:kkalckstein-eval;Environment:test
- エラーが発生した InvalidateCache ポリシーの XML を調べて、 - <CacheResource>要素に指定されたキャッシュ名がエラー メッセージの内容と一致しているかどうかを確認します。- この例では、 - <CacheResource>要素で指定されたキャッシュ名は- tokencacheです。- <?xml version="1.0" encoding="UTF-8" standalone="yes"?> <InvalidateCache async="false" continueOnError="false" enabled="true" name="InvalidateCache-Token"> <DisplayName>InvalidateCache-Token</DisplayName> <Properties/> <CacheKey> <Prefix/> <KeyFragment ref=""/> </CacheKey> <CacheResource>tokencache</CacheResource> <Scope>Exclusive</Scope> <CacheContext> <APIProxyName/> <ProxyName>default</ProxyName> <TargetName>default</TargetName> </CacheContext> <PurgeChildEntries>false</PurgeChildEntries> </InvalidateCache>
- 手順 1 で確認したキャッシュが手順 1 で特定した環境に定義されているかどうか確認します。 - Edge UI で、[ADMIN] > [Environment] > [test] の順に移動し、[Environment Configuration] の [Caches] タブにキャッシュが表示されているかどうか確認します。キャッシュが存在しない場合、これがエラーの原因です。 - たとえば、次のスクリーンショットでは、 - tokencacheという名前のキャッシュがありません。 - tokencacheという名前のキャッシュが- test環境で定義されていないため、次のエラーが発生します。- Invalid cache resource reference tokencache in Step definition InvalidateCache-Token. Context Revision:2;APIProxy:TestCache;Organization:kkalckstein-eval;Environment:test
解決策
API プロキシをデプロイする環境に、InvalidateCache ポリシーの <CacheResource> 要素で指定されたキャッシュを作成します。
キャッシュの作成方法については、環境キャッシュの作成と編集をご覧ください。
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 コンポーネントに作成されていないと、このエラーが発生します。Message Processor は、Apigee Edge を介して API トラフィックのフローを処理する Edge 内部のコンポーネントです。
解決策
Private Cloud を利用している場合は、次の操作を行います。
- deployments 管理 API を実行して、 - steps.cache.CacheNotFoundエラーが発生している Message Processor を特定します。- 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 サポートにご連絡ください。