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

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

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

پیام خطا

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

Error Deploying Revision revision_number to environment
Invalid cache resource reference [cache_resource] in Step definition [invalidate_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 InvalidateCache-Token. Context Revision:2;APIProxy:TestCache;Organization:kkalckstein-eval;Environment:test

مثال تصویر خطا

علت

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

تشخیص

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

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

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

    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <InvalidateCache async="false" continueOnError="false" enabled="true" name="InvalidateCache-Token">
        <DisplayName>InvalidateCache-Token</DisplayName>
        <Properties/>
        <CacheKey>
            <Prefix/>
            <KeyFragment ref=""/>
        </CacheKey>
        <CacheResource>tokencache</CacheResource>
        <Scope>Exclusive</Scope>
        <CacheContext>
            <APIProxyName/>
            <ProxyName>default</ProxyName>
            <TargetName>default</TargetName>
        </CacheContext>
        <PurgeChildEntries>false</PurgeChildEntries>
    </InvalidateCache>
    
  3. بررسی کنید که آیا حافظه پنهان (تعیین‌شده در مرحله ۱) در محیط خاص (شناسایی‌شده در مرحله ۱) تعریف شده است یا خیر.

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

    برای مثال، در تصویر زیر توجه کنید که کش با نام tokencache وجود ندارد.

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

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

وضوح تصویر

مطمئن شوید که حافظه پنهان مشخص شده در عنصر <CacheResource> از خط‌مشی InvalidateCache در محیطی که می‌خواهید پروکسی 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 ایجاد نشده باشد. Message Processor یک کامپوننت داخلی Edge است که جریان ترافیک API را از طریق Apigee Edge پردازش می‌کند.

وضوح تصویر

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

  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 تماس بگیرید.