Merespons pemecahan masalah error deployment kebijakan cache

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

InvalidTimeout

Pesan Kesalahan

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 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 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 yang menentukan elemen <CacheLookupTimeoutInSeconds>.

    Misalnya, konfigurasi kebijakan berikut menetapkan <CacheLookupTimeoutInSeconds> ke -1, yang sesuai dengan isi 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, itulah 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 Kesalahan

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> di kebijakanResponseCache disetel ke nama yang tidak ada di lingkungan tempat proxy API di-deploy.

Diagnosis

  1. Identifikasi cache tidak valid yang digunakan di 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 lingkungannya 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 dengan cache yang tidak valid (yang diidentifikasi pada langkah #1) ditentukan dalam elemen <CacheResource>.

    Misalnya, kebijakan berikut menentukan nilai <CacheResource> sebagai itemscache, yang cocok dengan isi 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 tersebut 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 Environment Configuration Caches.

    Karena cache bernama itemscache tidak ditentukan di lingkungan prod, Anda 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 Kesalahan

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

Penyebab

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

Misalnya, jika Anda memiliki kebijakan ResponseCache yang sama yang dilampirkan dalam Preflow permintaan dari 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 Proxy dan Endpoint Target Proxy API tempat error terjadi. Jika kebijakan ResponseCache yang sama disertakan dalam dua atau lebih alur permintaan, berarti itulah 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 disertakan ke satu jalur permintaan di semua alur Proxy API.

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

ResponseCacheStepAttachmentNotAllowedResp

Pesan Kesalahan

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

Penyebab

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

Misalnya, jika Anda memiliki kebijakan ResponseCache yang sama yang dilampirkan dalam Preflow respons dari 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 Proxy dan Endpoint Target Proxy API tempat error terjadi. Jika kebijakan ResponseCache yang sama disertakan dalam dua atau lebih alur respons, berarti itulah penyebab error.

    Pada contoh berikut, kebijakan ResponseCache Response-Cache-1 yang sama 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 disertakan 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 Kesalahan

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

Terjadi error saat men-deploy revisi 2 ke produksi - LookUp.

ATAU

Terjadi error saat men-deploy revisi 2 ke produksi - Populasi.

Penyebab

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

Diagnosis

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

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

    Pada contoh berikut, elemen <SkipCachePopulation> menggunakan operator JavaScript === untuk memeriksa nilai sama dan jenis 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 Kesalahan

Deployment proxy API melalui UI atau API Apigee 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 tidak dibuat pada komponen Pemroses Pesan tertentu.

Resolusi

Hubungi Dukungan Apigee untuk mendapatkan bantuan.