عیب یابی خطای استقرار خط مشی کش جستجو

شما در حال مشاهده اسناد Apigee Edge هستید.
به مستندات Apigee X بروید .
اطلاعات

InvalidTimeout

پیغام خطا

استقرار پراکسی API از طریق Edge UI یا Edge management 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.

نمونه خطا از صفحه نمایش

علت

اگر عنصر <CacheLookupTimeoutInSeconds> یک خط مشی LookupCache روی یک عدد منفی تنظیم شود، آنگاه استقرار پراکسی API با شکست مواجه می شود.

به عنوان مثال، اگر عنصر <CacheLookupTimeoutInSeconds> -1 باشد، استقرار پروکسی API با شکست مواجه می شود.

تشخیص

  1. مقدار نامعتبر تعیین شده برای عنصر <CacheLookupTimeoutInSeconds> در خط مشی LookupCache را شناسایی کنید. شما می توانید این اطلاعات را در پیام خطا پیدا کنید. به عنوان مثال، در خطای زیر، مقدار نامعتبر استفاده شده برای عنصر <CacheLookupTimeoutInSeconds> -1 است:

    CacheLookupTimeoutInSeconds -1 value should be greater than zero.
    
  2. تمام خط مشی های LookupCache را در پروکسی API خاصی که در آن شکست رخ داده است، بررسی کنید. ممکن است یک یا چند سیاست LookupCache وجود داشته باشد که در آن عنصر <CacheLookupTimeoutInSeconds> مشخص شده باشد. خط مشی LookUpCache را که در آن مقدار نامعتبر (در مرحله شماره 1 در بالا مشخص شده است) برای عنصر <CacheLookupTimeoutInSeconds> مشخص شده است، شناسایی کنید.

    به عنوان مثال، پیکربندی خط مشی زیر مقدار <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> به عنوان یک عدد صحیح منفی مشخص شده باشد، این دلیل خطا است.

قطعنامه

اطمینان حاصل کنید که مقدار عنصر <CacheLookupTimeoutInSeconds> سیاست LookupCache همیشه به عنوان یک عدد صحیح غیر منفی مشخص شده است.

برای تصحیح سیاست 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

پیغام خطا

استقرار پراکسی API از طریق Edge UI یا Edge management 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

نمونه خطا از صفحه نمایش

علت

اگر عنصر <CacheResource> روی نامی تنظیم شود که در محیطی که پراکسی API در آن مستقر می شود وجود نداشته باشد، این خطا رخ می دهد.

تشخیص

  1. حافظه پنهان نامعتبر مورد استفاده در عنصر <CacheResource> خط مشی LookupCache و محیطی که خطا در آن رخ داده است را شناسایی کنید. شما می توانید هر دو مورد را در پیام خطا پیدا کنید. به عنوان مثال، در خطای زیر، نام کش نامعتبر tokencache و نام محیط test است.

    Invalid cache resource reference tokencache in Step definition LookupCache-Token. Context Revision:2;APIProxy:TestCache;Organization:kkalckstein-eval;Environment:test
    
  2. تمام خط مشی های LookupCache را در پروکسی API خاصی که در آن شکست رخ داده است، بررسی کنید. خط مشی LookupCache خاصی را شناسایی کنید که در آن کش نامعتبر (شناسایی شده در مرحله شماره 1) در عنصر <CacheResource> مشخص شده است.

    به عنوان مثال، خط مشی زیر مقدار <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 مشخص شده است).

    در Edge UI، به ADMIN > Environment > test بروید و بررسی کنید که آیا حافظه پنهان در برگه Caches پیکربندی محیط وجود دارد یا خیر. اگر حافظه پنهان وجود نداشته باشد، دلیل این خطا است.

    به عنوان مثال، در تصویر زیر توجه کنید که حافظه پنهان با نام tokencache وجود ندارد.

    از آنجایی که کش با نام tokencache در محیط test تعریف نشده است، با این خطا مواجه می شوید:

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

قطعنامه

مطمئن شوید که نام کش مشخص شده در عنصر <CacheResource> در محیطی که می‌خواهید پراکسی API را در آن مستقر کنید، ایجاد شده باشد.

برای اطلاعات در مورد نحوه ایجاد کش به ایجاد و ویرایش کش محیطی مراجعه کنید.

CacheNotFound

پیغام خطا

استقرار پراکسی API از طریق Edge UI یا Edge management API منجر به پیام خطایی مانند این می شود و وضعیت استقرار API Proxy به عنوان نیمه مستقر شده علامت گذاری می شود:

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

نمونه پیام خطا

Error Cache : configCache, not found in organization : kkalckstein-eval__test

علت

این خطا در صورتی رخ می دهد که حافظه پنهان ذکر شده در پیام خطا روی یک جزء خاص Message Processor ایجاد نشده باشد.

قطعنامه

اگر کاربر 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. به UUID(های) پردازشگر پیام توجه کنید که در آن خطای steps.cache.CacheNotFound را مشاهده می کنید. نام میزبان/آدرس IP پردازشگر پیام مرتبط با UUID را شناسایی کنید.

  3. وارد Message Processor خاص شده و با استفاده از دستور زیر آن را مجددا راه اندازی کنید:

    apigee-service edge-message-processor restart

اگر کاربر Public Cloud هستید یا اگر مشکل برای Private Cloud همچنان ادامه دارد، برای دریافت کمک با پشتیبانی Apigee تماس بگیرید.