캐시 무효화 정책 배포 오류 문제 해결

현재 Apigee Edge 문서가 표시되고 있습니다.
Apigee X 문서로 이동
정보

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

오류 스크린샷 예시

원인

이 오류는 InvalidateCache 정책의 <CacheResource> 요소가 API 프록시가 배포되는 환경에 존재하지 않는 이름으로 설정된 경우에 발생합니다.

진단

  1. InvalidateCache 정책 이름, InvalidateCache 정책의 <CacheResource> 요소에 사용된 잘못된 캐시, 오류가 발생한 환경을 식별합니다. 오류 메시지에서 이러한 항목을 모두 찾을 수 있습니다. 예를 들어 다음 오류에서 InvalidateCache 정책 이름은 InvalidateCache-Token, 잘못된 캐시의 이름은 tokencache, 환경 이름은 test입니다.

    Invalid cache resource reference tokencache in Step definition InvalidateCache-Token. Context Revision:2;APIProxy:TestCache;Organization:kkalckstein-eval;Environment:test
    
  2. 실패한 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>
    
  3. 특정 환경(1단계에서 식별됨)에서 캐시(1단계에서 결정됨)가 정의되었는지 확인합니다.

    Edge UI에서 관리자 > 환경 > 테스트로 이동하여 환경 구성캐시 탭에 캐시가 있는지 확인합니다. 캐시가 없으면 오류가 발생합니다.

    예를 들어 다음 스크린샷에는 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

원인

이 오류는 오류 메시지에 언급된 특정 캐시가 특정 메시지 프로세서 구성요소에 생성되지 않으면 발생합니다. 메시지 프로세서는 Apigee Edge를 통해 API 트래픽의 흐름을 처리하는 내부 Edge 구성요소입니다.

해상도

Private Cloud 사용자인 경우 다음 안내를 따르세요.

  1. API 프록시 배포를 나열하고 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"
        ...
    
  2. steps.cache.CacheNotFound 오류가 표시된 메시지 프로세서의 UUID를 확인합니다. UUID에 해당하는 메시지 프로세서의 호스트 이름/IP 주소를 식별합니다.

  3. 특정 메시지 프로세서에 로그인하고 다음 명령어를 사용하여 메시지 프로세서를 다시 시작합니다.

    apigee-service edge-message-processor restart

Public Cloud 사용자이거나 Private Cloud에서 문제가 계속되면 Apigee 지원팀에 문의하여 도움을 받으세요.