شما در حال مشاهده اسناد Apigee Edge هستید.
به مستندات Apigee X بروید . اطلاعات
نحوه پاکسازی مقادیر کش شده از حافظه پنهان را پیکربندی می کند.
این خط مشی برای استفاده در حافظه پنهان کوتاه مدت با هدف عمومی در نظر گرفته شده است. این در ارتباط با خط مشی Populate Cache (برای نوشتن ورودی ها) و سیاست Lookup Cache (برای خواندن ورودی های حافظه پنهان) استفاده می شود.
برای ذخیره پاسخ های منابع پشتیبان، به خط مشی کش پاسخ مراجعه کنید.
مرجع عنصر
در زیر عناصری را که می توانید در این خط مشی پیکربندی کنید فهرست می کند.
<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 | نام داخلی سیاست. مقدار مشخصه در صورت تمایل، از عنصر | N/A | مورد نیاز |
continueOnError | برای بازگرداندن خطا در صورت شکست خط مشی، روی روی | نادرست | اختیاری |
enabled | برای اجرای خط مشی روی برای خاموش کردن خط مشی، روی | درست است | اختیاری |
async | این ویژگی منسوخ شده است. | نادرست | منسوخ شده است |
عنصر <DisplayName>
علاوه بر ویژگی name
برای برچسبگذاری خطمشی در ویرایشگر پروکسی رابط کاربری مدیریت با نامی متفاوت و به زبان طبیعی، از آن استفاده کنید.
<DisplayName>Policy Display Name</DisplayName>
پیش فرض | N/A اگر این عنصر را حذف کنید، از مقدار ویژگی |
---|---|
حضور | اختیاری |
تایپ کنید | رشته |
عنصر <CacheContext>/<APIproxyName>
نام برنامهای را مشخص میکند که ورودی حافظه پنهان را اضافه کرده است.
<APIProxyName>application_that_added_the_entry</APIProxyName>
صفات
صفت | توضیحات | پیش فرض | حضور | تایپ کنید |
---|---|---|---|---|
رجوع کنید | متغیر با نام برنامه | N/A | اختیاری | رشته |
عنصر <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 استفاده می شود. مقادیر برای APIProxyName، ProxyName، و TargetName زمانی اجباری هستند که از یک پیشوند CacheKey (یعنی یک پیشوند سفارشی) برای پاک کردن ورودی های حافظه پنهان اضافه شده توسط یک پراکسی API دیگر استفاده نشود.
عنصر <CacheKey>
یک اشاره گر منحصر به فرد را برای یک قطعه داده ذخیره شده در حافظه پنهان پیکربندی می کند.
<CacheKey> <Prefix>string</Prefix> <KeyFragment ref="variable_name" /> <KeyFragment>literal_string</KeyFragment> </CacheKey>
پیش فرض: | N/A |
حضور: | مورد نیاز |
نوع: | N/A |
<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>
پیش فرض: | N/A |
حضور: | اختیاری |
نوع: | رشته |
برای اطلاعات بیشتر در مورد پیکربندی حافظه پنهان، به ایجاد و ویرایش کش محیطی مراجعه کنید.
عنصر <CacheKey>/<KeyFragment>
مقداری را مشخص میکند که باید در کلید حافظه پنهان گنجانده شود، و فضای نامی برای تطبیق درخواستها با پاسخهای حافظه پنهان ایجاد میکند.
<KeyFragment ref="variable_name"/> <KeyFragment>literal_string</KeyFragment>
پیش فرض: | N/A |
حضور: | اختیاری |
نوع: | N/A |
این می تواند یک کلید (نام ثابتی که ارائه می کنید) یا یک مقدار (یک ورودی پویا با ارجاع به یک متغیر) باشد. تمام قطعات مشخص شده با هم ترکیب شده اند (به علاوه پیشوند) برای ایجاد کلید حافظه پنهان.
<KeyFragment>apiAccessToken</KeyFragment> <KeyFragment ref="request.queryparam.client_id" />
شما از عنصر <KeyFragment>
در ارتباط با <Prefix>
و <Scope>
استفاده می کنید. برای اطلاعات بیشتر، به کار با کلیدهای حافظه پنهان مراجعه کنید.
صفات
صفت | توضیحات | پیش فرض | حضور | تایپ کنید |
---|---|---|---|---|
رجوع کنید | متغیری که از آن مقدار به دست می آید. اگر این عنصر دارای مقدار تحت اللفظی باشد، نباید استفاده شود. | N/A | اختیاری | رشته |
عنصر <CacheKey>/<Prefix>
مقداری را برای استفاده به عنوان پیشوند کلید حافظه پنهان تعیین می کند.
<Prefix>prefix_string</Prefix>
پیش فرض: | N/A |
حضور: | اختیاری |
نوع: | رشته |
هنگامی که می خواهید مقدار خود را به جای مقدار شمارش شده <Scope>
<Scope>
این مقدار استفاده کنید. اگر تعریف شده باشد، <Prefix>
مقدار کلید حافظه پنهان را برای ورودیهای نوشته شده در حافظه پنهان پیشفرض میکند. یک مقدار عنصر <Prefix>
مقدار عنصر <Scope>
را لغو می کند.
شما از عنصر <Prefix>
در ارتباط با <CacheKey>
و <Scope>
استفاده می کنید. برای اطلاعات بیشتر، به کار با کلیدهای حافظه پنهان مراجعه کنید.
عنصر <CacheContext>/<ProxyName>
نام پروکسی را که داده ها برای آن ذخیره شده اند مشخص می کند.
<ProxyName>proxy_for_which_data_was_cached</ProxyName>
پیش فرض: | N/A |
حضور: | اختیاری |
نوع: | رشته |
صفات
صفت | توضیحات | پیش فرض | حضور | تایپ کنید |
---|---|---|---|---|
رجوع کنید | متغیری که از آن مقدار به دست می آید. اگر این عنصر دارای مقدار تحت اللفظی باشد، نباید استفاده شود. | N/A | اختیاری | رشته |
عنصر <PurgeChildEntries>
true
برای پاک کردن ورودی های حافظه پنهان که مقدار تنظیم شده توسط عنصر <KeyFragment>
پیکربندی شده برای این خط مشی را به اشتراک می گذارند. مقادیر در سایر بخشهای کلید حافظه پنهان، مانند عناصر <Prefix>
در نظر گرفته نمیشوند.
توجه داشته باشید که عنصر <KeyFragment>
باید مشخص شود. اگر اینطور نیست، تنظیم true برای <PurgeChildEntries>
می تواند منجر به پاکسازی تمام ورودی های کش شود.
باطل کردن همه ورودیهای حافظه نهان با مقدار قطعه کلید یکسان میتواند یک راه مفید برای پاک کردن چندین ورودی مرتبط به طور همزمان باشد.
<PurgeChildEntries>true_to_purge_child_entries</PurgeChildEntries>
پیش فرض: | نادرست |
حضور: | اختیاری |
نوع: | بولی |
عنصر <Scope>
زمانی که عنصر <Prefix>
در عنصر <CacheKey>
ارائه نشده باشد، شمارش برای ساختن یک پیشوند برای یک کلید کش استفاده می شود.
<Scope>scope_enumeration</Scope>
پیش فرض: | "انحصاری" |
حضور: | اختیاری |
نوع: | رشته |
تنظیم <Scope>
یک کلید حافظه پنهان را تعیین می کند که با توجه به مقدار <Scope>
از قبل اضافه می شود. به عنوان مثال، هنگامی که scope روی Exclusive
تنظیم شود، یک کلید حافظه پنهان به شکل زیر است:
orgName__envName__ برنامه Name__deployedRevisionNumber__proxy|TargetName__ [ serializedCacheKey ].
اگر یک عنصر <Prefix>
در <CacheKey>
وجود داشته باشد، جایگزین مقدار عنصر <Scope>
می شود. مقادیر معتبر شامل شمارش های زیر است.
شما از عنصر <Scope>
در ارتباط با <CacheKey>
و <Prefix>
استفاده می کنید. برای اطلاعات بیشتر، به کار با کلیدهای حافظه پنهان مراجعه کنید.
ارزش های قابل قبول
ارزش دامنه | توضیحات |
---|---|
Global | کلید کش در تمام پراکسی های API مستقر در محیط به اشتراک گذاشته می شود. کلید کش به شکل orgName __ envName __ اضافه شده است. اگر یک ورودی |
Application | نام پروکسی API به عنوان پیشوند استفاده می شود. کلید کش به شکل orgName__envName__ نام برنامه اضافه شده است. |
Proxy | از پیکربندی ProxyEndpoint به عنوان پیشوند استفاده می شود. کلید حافظه پنهان به شکل orgName__envName__ برنامه Name__deployedRevisionNumber__proxyEndpointName اضافه شده است. |
Target | از پیکربندی TargetEndpoint به عنوان پیشوند استفاده می شود. کلید حافظه پنهان به شکل orgName__envName__ برنامه Name__deployedRevisionNumber__targetEndpointName اضافه شده است. |
Exclusive | پیش فرض این خاص ترین است، و بنابراین حداقل خطر برخورد فضای نام را در یک کش معین نشان می دهد. پیشوند یکی از این دو شکل است:
کلید حافظه پنهان در فرم orgName__envName__ برنامه Name__deployedRevisionNumber__proxyNameITargetName اضافه شده است برای مثال، رشته کامل ممکن است به شکل زیر باشد: apifactory__test__weatherapi__16__default__apiAccessToken. |
عنصر <CacheContext>/<TargetName>
نام نقطه پایانی هدفی را که دادهها برای آن ذخیره شدهاند، مشخص میکند.
<TargetName>endpoint_for_which_data_was_cached</TargetName>
پیش فرض: | N/A |
حضور: | اختیاری |
نوع: | رشته |
صفات
صفت | توضیحات | پیش فرض | حضور | تایپ کنید |
---|---|---|---|---|
رجوع کنید | متغیری که از آن مقدار به دست می آید. اگر این عنصر دارای مقدار تحت اللفظی باشد، نباید استفاده شود. | N/A | اختیاری | رشته |
نکات استفاده
ذخیره سازی با هدف عمومی با خط مشی Populate Cache ، خط مشی LookupCache و سیاست InvalidateCache از حافظه پنهانی که شما پیکربندی می کنید یا حافظه پنهان مشترکی که به طور پیش فرض گنجانده شده است استفاده می کند. در بیشتر موارد، حافظه پنهان مشترک اساسی باید نیازهای شما را برآورده کند. برای استفاده از این کش، به سادگی عنصر <CacheResource>
را حذف کنید.
برای اطلاعات بیشتر در مورد پیکربندی حافظه پنهان، به ایجاد و ویرایش کش محیطی مراجعه کنید. برای اطلاعات بیشتر درباره ذخیرهسازی دادههای زیربنایی، به بخش داخلی کش مراجعه کنید.
کدهای خطا
این بخش پیامهای خطا و متغیرهای جریانی را توضیح میدهد که وقتی این خطمشی خطا را راهاندازی میکند، تنظیم میشود. این اطلاعات مهم است که بدانید آیا در حال ایجاد قوانین خطا برای یک پروکسی هستید. برای کسب اطلاعات بیشتر، آنچه را که باید در مورد خطاهای خط مشی و مدیریت خطاها بدانید را ببینید.
پیشوند کد خطا
N/A
خطاهای زمان اجرا
این سیاست هیچ گونه خطای زمان اجرا ایجاد نمی کند.
خطاهای استقرار
این خطاها ممکن است زمانی رخ دهند که یک پروکسی حاوی این خط مشی را مستقر می کنید.
نام خطا | علت | ثابت |
---|---|---|
InvalidCacheResourceReference | اگر عنصر <CacheResource> در خط مشی InvalidateCache روی نامی تنظیم شود که در محیطی که پراکسی API در آن مستقر می شود وجود نداشته باشد، این خطا رخ می دهد. | build |
CacheNotFound | این خطا در صورتی رخ می دهد که حافظه پنهان ذکر شده در پیام خطا روی یک جزء خاص Message Processor ایجاد نشده باشد. | build |
متغیرهای خطا
N/A
نمونه پاسخ خطا
N/A