تحديد المشاكل وحلّها في ما يتعلّق بنشر سياسة ذاكرة التخزين المؤقت

أنت تعرض مستندات Apigee Edge.
انتقل إلى مستندات Apigee X.
معلومات

InvalidCacheResourceReference

رسالة الخطأ

تعذَّر نشر الخادم الوكيل لواجهة برمجة التطبيقات من خلال واجهة مستخدم 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:[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 على اسم غير متوفّر في البيئة التي يتم نشر الخادم الوكيل لواجهة برمجة التطبيقات فيها.

التشخيص

  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. افحص ملف XML الخاص بسياسة Populatecache الذي أخفق وتحقَّق من تطابق اسم ذاكرة التخزين المؤقت المحدّد للعنصر <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، انتقل إلى ADMIN > البيئة > اختبار والتحقق من وجود ذاكرة التخزين المؤقت في علامة التبويب ذاكرات التخزين المؤقت في إعداد البيئة. إذا لم تكن ذاكرة التخزين المؤقت موجودة، فهذا هو سبب الخطأ.

    على سبيل المثال، لاحظ في لقطة الشاشة أدناه أنّ ذاكرة التخزين المؤقت التي تحمل الاسم "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 قد تم إنشاؤها في البيئة التي تريد نشر الخادم الوكيل لواجهة برمجة التطبيقات فيها.

راجع إنشاء ذاكرة تخزين مؤقت للبيئة وتعديلها للحصول على معلومات حول كيفية إنشاء ذاكرة التخزين المؤقت.

CacheNotFound

رسالة الخطأ

يؤدي نشر خادم وكيل واجهة برمجة التطبيقات من خلال واجهة مستخدم Edge أو واجهة برمجة تطبيقات إدارة Edge إلى ظهور رسالة خطأ مثل هذه، ويتم وضع علامة على حالة نشر خادم وكيل واجهة برمجة التطبيقات بأنّه تم نشره جزئيًا:

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

مثال على رسالة الخطأ

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

السبب

يحدث هذا الخطأ إذا لم تكن ذاكرة التخزين المؤقت المحددة المذكورة في رسالة الخطأ على مكون محدد من معالجات الرسائل. معالج الرسائل هو مكوِّن داخلي على Edge يعالج تدفق زيارات واجهة برمجة التطبيقات من خلال Apigee Edge.

الدقة

إذا كنت من مستخدمي السحابة الإلكترونية الخاصة، يُرجى اتّباع التعليمات التالية:

  1. يمكنك سرد عمليات نشر الخادم الوكيل لواجهة برمجة التطبيقات وتحديد معالجات الرسائل التي تعرض الخطأ 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 للحصول على مساعدة.