عیب یابی خطای استقرار خط مشی کش را پر کنید

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

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:[apiproxy_name];Organization:[organization];Environment:[environment]

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

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

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

علت

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

تشخیص

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

    Invalid cache resource reference tokencache in Step definition PopulateCache-Token. Context Revision:2;APIProxy:TestCache;Organization:kkalckstein-eval;Environment:test
    
  2. خط مشی PopulateCache XML ناموفق را بررسی کنید و بررسی کنید که آیا نام حافظه پنهان تعیین شده برای عنصر <CacheResource> با پیام خطا مطابقت دارد یا خیر.

    در این مثال، نام کش مشخص شده در عنصر <CacheResource> tokencache است:

    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <PopulateCache async="false" continueOnError="false" enabled="true" name="PopulateCache-Token">
        <DisplayName>PopulateCache-Token</DisplayName>
        <Properties/>
        <CacheKey>
            <Prefix/>
            <KeyFragment ref="request.queryparam.client_id"/>
        </CacheKey>
        <CacheResource>tokencache</CacheResource>
        <Scope>Exclusive</Scope>
        <ExpirySettings>
            <TimeoutInSec>3600</TimeoutInSec>
        </ExpirySettings>
        <Source>token</Source>
    </PopulateCache>
    
  3. بررسی کنید که آیا کش (تعیین شده در مرحله شماره 1) در محیط خاصی تعریف شده است (در مرحله شماره 1 مشخص شده است).

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

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

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

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

قطعنامه

اطمینان حاصل کنید که کش مشخص شده در عنصر <CacheResource> خط مشی PopulateCache در محیطی که می خواهید پراکسی 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 ایجاد نشده باشد. یک پردازشگر پیام یک جزء داخلی Edge است که جریان ترافیک API را از طریق Apigee 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. به UUID(های) پردازشگر پیام توجه کنید که در آن خطای steps.cache.CacheNotFound را مشاهده می کنید. نام میزبان/آدرس IP پردازشگر پیام مربوط به UUID را شناسایی کنید.

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

    apigee-service edge-message-processor restart

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