Pemecahan masalah error deployment kebijakan Cache Respons

Anda sedang melihat dokumentasi Apigee dan Apigee hybrid.
Lihat dokumentasi Apigee Edge.

InvalidTimeout

Pesan Error

Deployment proxy API melalui UI atau API Apigee gagal dengan pesan error ini:

Error Saving Revision revision_number
CacheLookupTimeoutInSeconds value value should be greater than zero.

Contoh Pesan Error

Error Saving Revision 2
CacheLookupTimeoutInSeconds -1 value should be greater than zero.

Contoh Screenshot Error

Terjadi error saat menyimpan revisi 2.

Penyebab

Jika elemen <CacheLookupTimeoutInSeconds> dari kebijakan ResponseCache ditetapkan ke angka negatif, deployment proxy API akan gagal.

Misalnya, jika <CacheLookupTimeoutInSeconds> adalah -1, deployment proxy API akan gagal.

Diagnosis

  1. Identifikasi nilai yang tidak valid yang digunakan untuk elemen <CacheLookupTimeoutInSeconds> dalam kebijakan ResponseCache. Anda dapat menemukan informasi ini dalam pesan error. Misalnya, dalam error berikut, nilai yang tidak valid yang digunakan untuk elemen <CacheLookupTimeoutInSeconds> adalah -1:

    CacheLookupTimeoutInSeconds -1 value should be greater than zero.
    
  2. Periksa semua kebijakan ResponseCache di Proxy API tertentu tempat kegagalan terjadi. Mungkin ada satu atau beberapa kebijakan ResponseCache tempat elemen <CacheLookupTimeoutInSeconds> ditentukan.

    Misalnya, konfigurasi kebijakan berikut menetapkan <CacheLookupTimeoutInSeconds> ke -1, yang cocok dengan yang ada dalam pesan error:

    <?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>
    
  3. Jika <CacheLookupTimeoutInSeconds> ditentukan sebagai bilangan bulat negatif, hal itu adalah penyebab error.

Resolusi

Pastikan nilai untuk elemen <CacheLookupTimeoutInSeconds> kebijakan ResponseCache selalu ditentukan sebagai bilangan bulat non-negatif.

Untuk memperbaiki contoh kebijakan ResponseCache yang ditampilkan di atas, Anda dapat mengubah <CacheLookupTimeoutInSeconds> element menjadi 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

Pesan Error

Deployment proxy API melalui UI atau API Apigee gagal dengan pesan error ini:

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

Contoh Pesan Error

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

Contoh Screenshot Error

Terjadi error saat men-deploy revisi 2 ke produksi.

Penyebab

Error ini terjadi jika elemen <CacheResource> dalam kebijakan ResponseCache ditetapkan ke nama yang tidak ada di lingkungan tempat proxy API di-deploy.

Diagnosis

  1. Identifikasi cache yang tidak valid yang digunakan dalam elemen <CacheResource> kebijakan Cache Respons dan lingkungan tempat error terjadi. Anda dapat menemukan kedua item ini dalam pesan error. Misalnya, dalam error berikut, nama cache yang tidak valid adalah itemscache dan nama lingkungan adalah prod.

    Invalid cache resource reference itemscache in Step definition ItemsResponseCache. Context Revision:2;APIProxy:StoresInventory;Organization:kkalckstein-eval;Environment:prod
    
  2. Periksa semua kebijakan ResponseCache di Proxy API tertentu tempat kegagalan terjadi. Identifikasi kebijakan ResponseCache tertentu tempat cache yang tidak valid (diidentifikasi pada langkah #1) ditentukan dalam elemen <CacheResource>.

    Misalnya, kebijakan berikut menentukan nilai <CacheResource> sebagai itemscache, yang cocok dengan yang ada dalam pesan error:

    <?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>
    
  3. Verifikasi apakah cache (ditentukan pada langkah #2) telah ditentukan di lingkungan tertentu (diidentifikasi pada langkah #1).

    Di UI Apigee, buka APIs > Environment Configuration dan periksa apakah cache ada di tab Caches di lingkungan tertentu. Jika cache tidak ada, berarti itulah penyebab error.

    Misalnya, perhatikan pada screenshot di bawah bahwa cache bernama itemscache tidak ada.

    Tab Cache Konfigurasi Lingkungan.

    Karena cache bernama itemscache tidak ditentukan di lingkungan prod, Anda akan mendapatkan error:

    Invalid cache resource reference does_not_exist in Step definition Response-Cache-1. Context Revision:2;APIProxy:ResponseCache;Organization:kkalckstein-eval;Environment:prod
    

Resolusi

Pastikan nama cache yang ditentukan dalam elemen <CacheResource> telah dibuat di lingkungan tempat Anda ingin men-deploy proxy API.

ResponseCacheStepAttachmentNotAllowedReq

Pesan Error

Deployment proxy API melalui UI atau API Apigee gagal dengan pesan error ini:

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.

Contoh Pesan Error

Error Deploying Revision 2 to test
Response cache step definition Response-Cache-1 can not be attached more than once in the request path.

Contoh Screenshot Error

Terjadi error saat men-deploy revisi 2 untuk pengujian.

Penyebab

Error ini terjadi jika kebijakan ResponseCache yang sama dilampirkan ke beberapa jalur permintaan dalam alur proxy API.

Misalnya, jika Anda memiliki kebijakan ResponseCache yang sama yang dilampirkan dalam Praaliran permintaan Endpoint Proxy dan Target, error ini akan terjadi.

Diagnosis

  1. Identifikasi nama kebijakan ResponseCache yang dilampirkan lebih dari sekali. Anda dapat menemukan informasi ini dalam pesan error. Misalnya, dalam error berikut, nama kebijakan ResponseCache adalah 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.
    
  2. Periksa semua alur permintaan di Endpoint Proxy dan Target Proxy API tempat error terjadi. Jika kebijakan ResponseCache yang sama dilampirkan dalam dua atau beberapa alur permintaan, kebijakan tersebut adalah penyebab error.

    Pada contoh berikut, kebijakan ResponseCache Response-Cache-1 yang sama dikonfigurasi di jalur permintaan PreFlow endpoint proxy default, dan PreFlow endpoint target default:

    <?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>
        ...
    

Resolusi

Pastikan kebijakan ResponseCache hanya dilampirkan ke satu jalur permintaan di semua alur API Proxy.

Untuk memperbaiki contoh yang ditampilkan di atas, hapus kebijakan ResponseCache Response-Cache-1 dari salah satu dari dua alur permintaan.

ResponseCacheStepAttachmentNotAllowedResp

Pesan Error

Deployment proxy API melalui UI atau API Apigee gagal dengan pesan error ini:

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.

Contoh Pesan Error

Error Deploying Revision 2 to test
Response cache step definition Response-Cache-1 can not be attached more than once in the response path.

Contoh Screenshot Error

Terjadi error saat men-deploy revisi 2 untuk pengujian.

Penyebab

Error ini terjadi jika kebijakan ResponseCache yang sama dilampirkan ke beberapa jalur respons dalam alur proxy API.

Misalnya, jika Anda memiliki kebijakan ResponseCache yang sama yang dilampirkan dalam Preflow respons Endpoint Proxy dan Target, error ini akan terjadi.

Diagnosis

  1. Identifikasi nama kebijakan ResponseCache yang dilampirkan lebih dari sekali. Anda dapat menemukan informasi ini dalam pesan error. Misalnya, dalam error berikut, nama kebijakan ResponseCache adalah 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.
    
  2. Periksa semua alur permintaan di Endpoint Proxy dan Target Proxy API tempat error terjadi. Jika kebijakan ResponseCache yang sama dilampirkan dalam dua atau beberapa alur respons, kebijakan tersebut adalah penyebab error.

    Pada contoh berikut, kebijakan ResponseCache yang sama Response-Cache-1 dikonfigurasi di jalur respons PreFlow endpoint proxy default, dan PreFlow endpoint target default:

    <?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>
        ...
    

Resolusi

Pastikan kebijakan ResponseCache hanya dilampirkan ke satu jalur respons di semua alur Proxy API.

Untuk memperbaiki contoh yang ditampilkan di atas, hapus kebijakan ResponseCache Response-Cache-1 dari salah satu dari dua jalur respons.

InvalidMessagePatternForErrorCode

Pesan Error

Deployment proxy API melalui UI atau API Apigee gagal dengan salah satu pesan error berikut:

Error Deploying Revision revision_number to environment
Invalid message pattern found for error code steps.cache.InvalidSkipCacheLookUpCondition.

ATAU

Error Deploying Revision revision_number to environment
Invalid message pattern found for error code steps.cache.InvalidSkipCachePopulationCondition.

Contoh Pesan Error

Error Deploying Revision 2 to prod
Invalid message pattern found for error code steps.cache.InvalidSkipCacheLookUpCondition.

ATAU

Error Deploying Revision 2 to prod
Invalid message pattern found for error code steps.cache.InvalidSkipCachePopulationCondition.

Contoh Screenshot Error

Error deploying revision 2 to prod - LookUp.

ATAU

Error deploying revision 2 to prod - Population.

Penyebab

Error ini terjadi jika elemen <SkipCacheLookup> atau <SkipCachePopulation> dalam kebijakan ResponseCache berisi kondisi yang tidak valid.

Diagnosis

  1. Periksa semua kebijakan ResponseCache di API Proxy tempat error terjadi dan periksa apakah ada kebijakan yang memiliki kondisi yang ditentukan untuk elemen <SkipCacheLookup> dan/atau <SkipCachePopulation>.

  2. Periksa apakah kondisi yang ditentukan untuk elemen <SkipCacheLookup> dan/atau <SkipCachePopulation> tidak valid. Jika ya, berarti itulah penyebab error.

    Dalam contoh berikut, elemen <SkipCachePopulation> menggunakan operator JavaScript === untuk memeriksa nilai yang sama dan jenis yang sama yang tidak valid.

    <?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>
    

    Karena operator === tidak valid, Anda akan mendapatkan error:

    Invalid message pattern found for error code steps.cache.InvalidSkipCacheLookUpCondition.
    

Resolusi

Pastikan kondisi yang ditentukan untuk elemen <SkipCacheLookup> dan/atau <SkipCachePopulation> selalu valid.

Untuk memperbaiki contoh kebijakan ResponseCache yang ditampilkan di atas, Anda dapat mengubah <SkipCacheLookup> untuk menggunakan operator =:

<?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

Pesan Error

Deployment proxy API melalui UI atau API Apigee akan menghasilkan pesan error seperti ini, dan status deployment Proxy API ditandai sebagai di-deploy sebagian:

Error: Cache : cache_resource, not found in organization : organization__environment.

Contoh Pesan Error

Error Cache : Response-Cache-1, not found in organization : kkalckstein-eval__prod

Penyebab

Error ini terjadi jika cache tertentu yang disebutkan dalam pesan error belum dibuat di komponen Message Processor tertentu.

Resolusi

Hubungi Dukungan Apigee untuk mendapatkan bantuan.