خط‌مشی InvalidateCache

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

پیکربندی می‌کند که چگونه مقادیر ذخیره‌شده در حافظه نهان باید از حافظه نهان پاک شوند.

این خط‌مشی برای استفاده در حافظه نهان کوتاه‌مدت با هدف کلی درنظر گرفته شده است. این خط‌مشی در ارتباط با خط‌مشی «پر کردن حافظه نهان» (برای نوشتن ورودی‌ها) و خط‌مشی «جستجوی حافظه نهان» (برای خواندن ورودی‌های حافظه نهان) استفاده می‌شود.

برای ذخیره کردن پاسخ‌های منابع زیرینه در حافظه نهان، خط‌مشی «حافظه نهان پاسخ» را ببینید.

مرجع عنصر

در زیر، عناصر قابل‌پیکربندی در این خط‌مشی فهرست شده است.

<InvalidateCache async="false" continueOnError="false" enabled="true" name="policy-name">
    <DisplayName>Policy Name</DisplayName>
    <CacheKey>
        <Prefix>prefix_string</Prefix>
        <KeyFragment ref="variable_reference"/>
        <KeyFragment>fragment_string</KeyFragment>
    </CacheKey>
    <!-- Omit this element if you're using the included shared cache. -->
    <CacheResource>cache_to_use</CacheResource>
    <Scope>scope_enumeration</Scope>
    <CacheContext>
        <APIProxyName>application_that_added_the_entry</APIProxyName>
        <ProxyName>proxy_for_which_data_was_cached</ProxyName>
        <TargetName>endpoint_for_which_data_was_cached</TargetName>
    </CacheContext>
    <PurgeChildEntries>true_to_purge_all_child_entries</PurgeChildEntries>
</InvalidateCache>

ویژگی‌های <InvalidateCache>

جدول زیر ویژگی هایی را توصیف می کند که برای همه عناصر اصلی خط مشی مشترک هستند:

صفت توضیحات پیش فرض حضور
name

نام داخلی سیاست. مقدار مشخصه name می تواند شامل حروف، اعداد، فاصله، خط تیره، زیرخط و نقطه باشد. این مقدار نمی تواند بیش از 255 کاراکتر باشد.

در صورت تمایل، از عنصر <DisplayName> برای برچسب گذاری خط مشی در ویرایشگر پروکسی UI مدیریت با نامی به زبان طبیعی دیگر استفاده کنید.

N/A مورد نیاز
continueOnError

برای بازگرداندن خطا در صورت شکست خط مشی، روی false تنظیم کنید. این رفتار مورد انتظار برای اکثر سیاست ها است.

روی true تنظیم کنید تا اجرای جریان حتی پس از شکست خط مشی ادامه یابد.

نادرست اختیاری
enabled

برای اجرای خط مشی روی true تنظیم کنید.

برای خاموش کردن خط مشی، روی false تنظیم کنید. این سیاست حتی اگر به یک جریان وابسته باشد اجرا نخواهد شد.

درست است اختیاری
async

این ویژگی منسوخ شده است.

نادرست منسوخ شده است

عنصر <DisplayName>

علاوه بر ویژگی name برای برچسب‌گذاری خط‌مشی در ویرایشگر پروکسی رابط کاربری مدیریت با نامی متفاوت و به زبان طبیعی، از آن استفاده کنید.

<DisplayName>Policy Display Name</DisplayName>
پیش فرض

N/A

اگر این عنصر را حذف کنید، از مقدار ویژگی name خط مشی استفاده می شود.

حضور اختیاری
تایپ کنید رشته

عنصر <CacheContext>/<APIProxyName>

نام برنامه‌ای را که ورودی حافظه نهان را اضافه کرده است مشخص می‌کند.

<APIProxyName>application_that_added_the_entry</APIProxyName>

مشخصه‌ها

مشخصه شرح پیش‌فرض حضور نوع
مرجع متغیر با نام برنامه. موجود نیست اختیاری رشته

عنصر <CacheContext>

مشخص می‌کند که وقتی مقدار عنصر Prefix مشخص نشده است، کلید حافظه نهان چگونه ساخته شود، یا ورودی‌های حافظه نهان اضافه‌شده توسط پراکسی API دیگری چگونه پاک شود.

<CacheContext>
  <APIProxyName ref="variable_name">application_that_added_the_entry</APIProxyName>
  <TargetName ref="variable_name">endpoint_for_which_data_was_cached</TargetName>
  <ProxyName ref="variable_name">proxy_for_which_data_was_cached</ProxyName>
</CacheContext>

برای ساختن CacheKey استفاده می‌شود. وقتی پیشوند CacheKey (یعنی پیشوند سفارشی) برای پاک کردن ورودی‌های حافظه نهان اضافه‌شده توسط پراکسی API دیگری استفاده نمی‌شود، مقادیر APIProxyName،‏ ProxyName، و TargetName الزامی است.

عنصر <CacheKey>

یک اشاره‌گر یکتا را برای قطعه‌ای از داده‌های ذخیره‌شده در حافظه نهان پیکربندی می‌کند.

<CacheKey>
    <Prefix>string</Prefix>
    <KeyFragment ref="variable_name" />
    <KeyFragment>literal_string</KeyFragment>
</CacheKey>

پیش‌فرض:

موجود نیست

حضور:

الزامی

نوع:

موجود نیست

‫<CacheKey> نام هر داده ذخیره‌شده در حافظه نهان را می‌سازد.

در زمان اجرا، مقادیر <KeyFragment> با مقدار عنصر <Scope> یا مقدار <Prefix> پیشوند می‌گیرد. برای مثال، مورد زیر منجر به کلید حافظه نهان UserToken__apiAccessToken__<value_of_client_id> می‌شود:

<CacheKey>
    <Prefix>UserToken</Prefix>
    <KeyFragment>apiAccessToken</KeyFragment>
    <KeyFragment ref="request.queryparam.client_id" />
</CacheKey>

از عنصر <CacheKey> همراه با <Prefix> و <Scope> استفاده می‌کنید. برای اطلاعات بیشتر، کار با کلیدهای حافظه نهان را ببینید.

عنصر <CacheResource>

مشخص می‌کند پیام‌ها در کدام حافظه نهان ذخیره شوند.

اگر این خط‌مشی (و خط‌مشی‌های مربوط به شما در PopulateCache و LookupCache) از حافظه نهان هم‌رسانی‌شده گنجانده‌شده استفاده می‌کند، این عنصر را به‌طور کامل حذف کنید.

<CacheResource>cache_to_use</CacheResource>

پیش‌فرض:

موجود نیست

حضور:

اختیاری

نوع:

رشته

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

عنصر <CacheKey>/<KeyFragment>

مقدار مشخصی را که باید در کلید حافظه نهان گنجانده شود مشخص می‌کند و فضای نامی برای مطابقت دادن درخواست‌ها با پاسخ‌های ذخیره‌شده در حافظه نهان ایجاد می‌کند.

<KeyFragment ref="variable_name"/>
<KeyFragment>literal_string</KeyFragment>

پیش‌فرض:

موجود نیست

حضور:

اختیاری

نوع:

موجود نیست

این می‌تواند کلید (نام ثابتی که ارائه می‌کنید) یا مقدار (ورودی پویایی که با ارجاع به متغیر تنظیم می‌شود) باشد. همه تکه‌های مشخص‌شده (به‌علاوه پیشوند) با هم ترکیب می‌شوند تا کلید حافظه نهان ایجاد شود.

<KeyFragment>apiAccessToken</KeyFragment>
<KeyFragment ref="request.queryparam.client_id" />

از عنصر <KeyFragment> همراه با <Prefix> و <Scope> استفاده می‌کنید. برای اطلاعات بیشتر، کار با کلیدهای حافظه نهان را ببینید.

مشخصه‌ها

مشخصه شرح پیش‌فرض حضور نوع
مرجع متغیری که مقدار از آن گرفته می‌شود. اگر این عنصر حاوی مقدار حرفی باشد نباید استفاده شود. موجود نیست اختیاری رشته

عنصر <CacheKey>/<Prefix>

مقدار مشخصی را برای استفاده به‌عنوان پیشوند کلید حافظه نهان تعیین می‌کند.

<Prefix>prefix_string</Prefix>

پیش‌فرض:

موجود نیست

حضور:

اختیاری

نوع:

رشته

وقتی می‌خواهید مقدار خودتان را به‌جای مقدار شمارشی <Scope> مشخص کنید، از این مقدار به‌جای <Scope> استفاده کنید. اگر تعریف شده باشد، <Prefix> مقدار کلید حافظه نهان را برای ورودی‌های نوشته‌شده در حافظه نهان پیش‌نویس می‌کند. مقدار عنصر <Prefix> مقدار عنصر <Scope> را ملغی می‌کند.

از عنصر <Prefix> همراه با <CacheKey> و <Scope> استفاده می‌کنید. برای اطلاعات بیشتر، کار با کلیدهای حافظه نهان را ببینید.

عنصر <CacheContext>/<ProxyName>

نام پراکسی‌ای را که داده‌های آن در حافظه نهان ذخیره شده است مشخص می‌کند.

<ProxyName>proxy_for_which_data_was_cached</ProxyName>

پیش‌فرض:

موجود نیست

حضور:

اختیاری

نوع:

رشته

مشخصه‌ها

مشخصه شرح پیش‌فرض حضور نوع
مرجع متغیری که مقدار از آن گرفته می‌شود. اگر این عنصر حاوی مقدار حرفی باشد نباید استفاده شود. موجود نیست اختیاری رشته

عنصر <PurgeChildEntries>

true برای پاک‌سازی ورودی‌های حافظه نهان که مقدار تنظیم‌شده توسط عنصر <KeyFragment> پیکربندی‌شده برای این خط‌مشی را هم‌رسانی می‌کنند. مقادیر در بخش‌های دیگر کلید حافظه نهان، مثل عناصر <Prefix>، درنظر گرفته نمی‌شود.

توجه داشته باشید که عنصر <KeyFragment> باید مشخص شود. اگر این تنظیم اعمال نشود، تنظیم <PurgeChildEntries> روی «درست» می‌تواند منجر به پاک‌سازی همه ورودی‌های حافظه نهان شود.

نامعتبر کردن همه ورودی‌های حافظه نهان با مقدار قطعه کلید یکسان می‌تواند روش مفیدی برای پاک کردن چندین ورودی مرتبط به‌طور هم‌زمان باشد.

<PurgeChildEntries>true_to_purge_child_entries</PurgeChildEntries>

پیش‌فرض:

نادرست

حضور:

اختیاری

نوع:

بولی

عنصر <Scope>

وقتی عنصر <Prefix> در عنصر <CacheKey> ارائه نشده باشد، از شمارش برای ساختن پیشوندی برای کلید حافظه نهان استفاده می‌شود.

<Scope>scope_enumeration</Scope>

پیش‌فرض:

«انحصاری»

حضور:

اختیاری

نوع:

رشته

تنظیم <Scope> کلید حافظه نهانی را تعیین می‌کند که براساس مقدار <Scope> به آن اضافه می‌شود. برای مثال، وقتی محدوده روی Exclusive تنظیم شده باشد، کلید حافظه نهان به‌صورت زیر خواهد بود:

orgName__envName__applicationName__deployedRevisionNumber__proxy|TargetName__ [ serializedCacheKey ].

اگر عنصر <Prefix> در <CacheKey> وجود داشته باشد، مقدار عنصر <Scope> را ملغی می‌کند. مقادیر معتبر شامل شمارش‌های زیر است.

از عنصر <Scope> همراه با <CacheKey> و <Prefix> استفاده می‌کنید. برای اطلاعات بیشتر، کار با کلیدهای حافظه نهان را ببینید.

مقادیر قابل‌قبول

مقدار حوزه شرح
Global

کلید حافظه نهان در همه پراکسی‌های API که در محیط مستقر شده‌اند هم‌رسانی می‌شود. کلید حافظه نهان به‌صورت orgName __ envName __ به ابتدای فرم اضافه می‌شود.

اگر ورودی <CacheKey> را با <KeyFragment> apiAccessToken و <Global> محدوده تعریف کنید، هر ورودی به‌صورت orgName__envName__apiAccessToken ذخیره می‌شود و پس‌از آن مقدار سریالی‌شده کلید دسترسی قرار می‌گیرد. برای پراکسی API که در محیطی به‌نام «test» در سازمانی به‌نام «apifactory» مستقر شده است، نشان‌های دسترسی تحت کلید حافظه نهان زیر ذخیره می‌شود: apifactory__test__apiAccessToken.

Application

نام پراکسی API به‌عنوان پیشوند استفاده می‌شود.

کلید حافظه نهان در قالب orgName__envName__applicationName پیش‌رونوشت می‌شود.

Proxy

پیکربندی ProxyEndpoint به‌عنوان پیشوند استفاده می‌شود.

کلید حافظه نهان به‌صورت orgName__envName__applicationName__deployedRevisionNumber__proxyEndpointName به‌کار می‌رود.

Target

پیکربندی TargetEndpoint به‌عنوان پیشوند استفاده می‌شود.

کلید حافظه نهان در قالب orgName__envName__applicationName__deployedRevisionNumber__targetEndpointName پیش‌رونوشت می‌شود.

Exclusive

پیش‌فرض. این روش خاص‌ترین روش است و بنابراین کمترین خطر تصادم فضای نام را در یک حافظه نهان معین دارد.

پیشوند یکی از دو شکل زیر است:

  • اگر خط‌مشی به جریان ProxyEndpoint پیوست شده باشد، پیشوند به‌شکل ApiProxyName_ProxyEndpointName است.
  • اگر خط‌مشی در TargetEndpoint پیوست شده باشد، پیشوند به‌صورت ApiProxyName_TargetName است.

کلید حافظه نهان در قالب orgName__envName__applicationName__deployedRevisionNumber__proxyNameITargetName پیش‌رونوشت می‌شود

برای مثال، رشته کامل ممکن است به این شکل باشد:

apifactory__test__weatherapi__16__default__apiAccessToken
.

عنصر <CacheContext>/<TargetName>

نام نقطه پایانی هدفی را که داده‌ها برای آن در حافظه نهان ذخیره شده است مشخص می‌کند.

<TargetName>endpoint_for_which_data_was_cached</TargetName>

پیش‌فرض:

موجود نیست

حضور:

اختیاری

نوع:

رشته

مشخصه‌ها

مشخصه شرح پیش‌فرض حضور نوع
مرجع متغیری که مقدار از آن گرفته می‌شود. اگر این عنصر حاوی مقدار حرفی باشد نباید استفاده شود. موجود نیست اختیاری رشته

یادداشت‌های استفاده

ذخیره‌سازی در حافظه نهان با هدف کلی با خط‌مشی «پر کردن حافظه نهان»، خط‌مشی «جستجوی حافظه نهان»، و خط‌مشی «نامعتبر کردن حافظه نهان» از حافظه نهانی که پیکربندی می‌کنید یا حافظه نهان مشترکی که به‌طور پیش‌فرض گنجانده شده است استفاده می‌کند. در اکثر موارد، حافظه نهان مشترک زیربنایی باید نیازهای شما را برآورده کند. برای استفاده از این حافظه نهان، کافی است عنصر <CacheResource> را حذف کنید.

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

کدهای خطا

این بخش پیام‌های خطا و متغیرهای جریانی را توضیح می‌دهد که وقتی این خط‌مشی خطا را راه‌اندازی می‌کند، تنظیم می‌شود. این اطلاعات مهم است که بدانید آیا در حال ایجاد قوانین خطا برای یک پروکسی هستید. برای کسب اطلاعات بیشتر، آنچه را که باید در مورد خطاهای خط مشی و مدیریت خطاها بدانید را ببینید.

پیشوند کد خطا

N/A

خطاهای زمان اجرا

این سیاست هیچ گونه خطای زمان اجرا ایجاد نمی کند.

خطاهای استقرار

این خطاها ممکن است زمانی رخ دهند که یک پروکسی حاوی این خط مشی را مستقر می کنید.

نام خطا علت ثابت
InvalidCacheResourceReference اگر عنصر <CacheResource> در خط مشی InvalidateCache روی نامی تنظیم شود که در محیطی که پراکسی API در آن مستقر می شود وجود نداشته باشد، این خطا رخ می دهد.
CacheNotFound این خطا در صورتی رخ می دهد که حافظه پنهان ذکر شده در پیام خطا روی یک جزء خاص Message Processor ایجاد نشده باشد.

متغیرهای خطا

N/A

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

N/A