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

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

زمان نامعتبر

پیام خطا

استقرار پروکسی API از طریق رابط کاربری Edge یا رابط مدیریت Edge با این پیام خطا مواجه می‌شود:

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 Proxy خاص که در آن خرابی رخ داده است، بررسی کنید. ممکن است یک یا چند سیاست LookupCache وجود داشته باشد که در آنها عنصر <CacheLookupTimeoutInSeconds> مشخص شده است. سیاست LookUpCache را که در آن مقدار نامعتبر (که در مرحله ۱ بالا مشخص شد) برای عنصر <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>

مرجع منبع نامعتبرCache

پیام خطا

استقرار پروکسی API از طریق رابط کاربری Edge یا رابط مدیریت Edge با این پیام خطا مواجه می‌شود:

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 Proxy خاصی که خطا در آن رخ داده است، بررسی کنید. سیاست LookupCache خاصی را که در آن حافظه پنهان نامعتبر (شناسایی شده در مرحله ۱) در عنصر <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. بررسی کنید که آیا حافظه پنهان (تعیین‌شده در مرحله ۱) در محیط خاص (شناسایی‌شده در مرحله ۱) تعریف شده است یا خیر.

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

    برای مثال، در تصویر زیر توجه کنید که کش با نام 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 را در آن مستقر کنید، ایجاد شده باشد.

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

حافظه پنهان یافت نشد

پیام خطا

استقرار پروکسی API از طریق رابط کاربری Edge یا API مدیریت Edge منجر به پیام خطایی مانند این می‌شود و وضعیت استقرار پروکسی API به صورت «تا حدی مستقر» علامت‌گذاری می‌شود:

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

مثال پیام خطا

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

علت

این خطا زمانی رخ می‌دهد که حافظه پنهان (cache) مشخص ذکر شده در پیام خطا، روی یک جزء خاص پردازشگر پیام (Message Processor) ایجاد نشده باشد.

وضوح تصویر

اگر از فضای ابری خصوصی استفاده می‌کنید، لطفاً دستورالعمل‌های زیر را دنبال کنید:

  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. به پردازشگر پیام خاص وارد شوید و با استفاده از دستور زیر آن را مجدداً راه اندازی کنید:

    apigee-service edge-message-processor restart

اگر کاربر فضای ابری عمومی هستید یا اگر مشکل در فضای ابری خصوصی همچنان ادامه دارد، برای دریافت کمک با پشتیبانی Apigee تماس بگیرید.