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

أنت الآن بصدد الاطّلاع على مستندات Apigee Edge.
انتقِل إلىمستندات Apigee X.
info

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

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