شما در حال مشاهده اسناد Apigee Edge هستید.
به مستندات Apigee X بروید . اطلاعات
نحوه بازیابی مقادیر کش شده در زمان اجرا را پیکربندی می کند.
این خط مشی برای استفاده در حافظه پنهان کوتاه مدت با هدف عمومی در نظر گرفته شده است. این در ارتباط با خط مشی Populate Cache (برای نوشتن ورودی ها) و سیاست Invalidate Cache (برای بی اعتبار کردن ورودی ها) استفاده می شود.
برای ذخیره پاسخ های منابع پشتیبان، به خط مشی کش پاسخ مراجعه کنید.
مرجع عنصر
در زیر عناصری را که می توانید در این خط مشی پیکربندی کنید فهرست می کند.
<LookupCache async="false" continueOnError="false" enabled="true" name="Lookup-Cache-1"> <DisplayName>Lookup Cache 1</DisplayName> <Properties/> <CacheKey> <Prefix/> <KeyFragment ref=""/> </CacheKey> <!-- Omit this element if you're using the included shared cache. --> <CacheResource/> <CacheLookupTimeoutInSeconds/> <Scope>Exclusive</Scope> <AssignTo>flowVar</AssignTo> </LookupCache>
یک کش مشترک به طور پیش فرض گنجانده شده است. برای استفاده از حافظه پنهان مشترک، عنصر <CacheResource>
را در این پیکربندی خط مشی حذف کنید.
برای اطلاعات بیشتر درباره ذخیرهسازی دادههای زیربنایی، به بخش داخلی کش مراجعه کنید. برای اطلاعات بیشتر در مورد پیکربندی حافظه پنهان، به ایجاد و ویرایش کش محیطی مراجعه کنید.
ویژگی های <LookupCache>
جدول زیر ویژگی هایی را توصیف می کند که برای همه عناصر اصلی خط مشی مشترک هستند:
صفت | توضیحات | پیش فرض | حضور |
---|---|---|---|
name | نام داخلی سیاست. مقدار مشخصه در صورت تمایل، از عنصر | N/A | مورد نیاز |
continueOnError | برای بازگرداندن خطا در صورت شکست خط مشی، روی روی | نادرست | اختیاری |
enabled | برای اجرای خط مشی روی برای خاموش کردن خط مشی، روی | درست است | اختیاری |
async | این ویژگی منسوخ شده است. | نادرست | منسوخ شده است |
عنصر <DisplayName>
علاوه بر ویژگی name
برای برچسبگذاری خطمشی در ویرایشگر پروکسی رابط کاربری مدیریت با نامی متفاوت و به زبان طبیعی، از آن استفاده کنید.
<DisplayName>Policy Display Name</DisplayName>
پیش فرض | N/A اگر این عنصر را حذف کنید، از مقدار ویژگی |
---|---|
حضور | اختیاری |
تایپ کنید | رشته |
عنصر <AssignTo>
متغیری را مشخص می کند که ورودی کش پس از بازیابی از حافظه نهان اختصاص داده می شود. متغیر باید قابل نوشتن باشد. اگر جستجوی حافظه پنهان مقداری را بازیابی نکند، متغیر تنظیم نخواهد شد.
<AssignTo>variable_to_receive_cached_value</AssignTo>
پیش فرض: | N/A |
حضور: | مورد نیاز |
نوع: | رشته |
عنصر <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>
استفاده می کنید. برای اطلاعات بیشتر، به کار با کلیدهای حافظه پنهان مراجعه کنید.
عنصر <CacheLookupTimeoutInSeconds>
تعداد ثانیههایی را مشخص میکند که پس از آن جستجوی ناموفق حافظه پنهان به عنوان از دست رفته در حافظه پنهان در نظر گرفته میشود. اگر این اتفاق بیفتد، جریان در امتداد مسیر cache-miss از سر گرفته می شود.
<CacheLookupTimeoutInSeconds>30</CacheLookupTimeoutInSeconds>
پیش فرض: | 30 |
حضور: | اختیاری |
نوع: | عدد صحیح |
عنصر <CacheResource>
کش را مشخص می کند که پیام ها باید در آن ذخیره شوند.
اگر این خطمشی (و خطمشیهای PopulateCache و InvalidateCache متناظر شما) از حافظه پنهان مشترک استفاده میکند، این عنصر را بهطور کامل حذف کنید.
<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>
استفاده می کنید. برای اطلاعات بیشتر، به کار با کلیدهای حافظه پنهان مراجعه کنید.
صفات
صفت | تایپ کنید | پیش فرض | مورد نیاز | توضیحات |
---|---|---|---|---|
رجوع کنید | رشته | خیر | متغیری که از آن مقدار به دست می آید. اگر این عنصر دارای مقدار تحت اللفظی باشد، نباید استفاده شود. |
عنصر <CacheKey>/<Prefix>
مقداری را برای استفاده به عنوان پیشوند کلید حافظه پنهان تعیین می کند.
<Prefix>prefix_string</Prefix>
پیش فرض: | N/A |
حضور: | اختیاری |
نوع: | رشته |
هنگامی که می خواهید مقدار خود را به جای مقدار شمارش شده <Scope>
<Scope>
این مقدار استفاده کنید. اگر تعریف شده باشد، <Prefix>
مقدار کلید حافظه پنهان را برای ورودیهای نوشته شده در حافظه پنهان پیشفرض میکند. یک مقدار عنصر <Prefix>
مقدار عنصر <Scope>
را لغو می کند.
شما از عنصر <Prefix>
در ارتباط با <CacheKey>
و <Scope>
استفاده می کنید. برای اطلاعات بیشتر، به کار با کلیدهای حافظه پنهان مراجعه کنید.
عنصر <Scope>
زمانی که عنصر <Prefix>
در عنصر <CacheKey>
ارائه نشده باشد، شمارش برای ساختن یک پیشوند برای یک کلید کش استفاده می شود.
<Scope>scope_enumeration</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. |
نکات استفاده
از این خطمشی برای ذخیرهسازی پنهان همه منظوره استفاده کنید. در زمان اجرا، خط مشی LookupCache مقداری را از حافظه پنهان بازیابی می کند و مقدار را به متغیری که با عنصر AssignTo مشخص کرده اید، اختصاص می دهد (اگر مقداری بازیابی نشود، متغیر تنظیم نخواهد شد). این مقدار را بر اساس یک کلید حافظه پنهان ایجاد شده از طریق پیکربندی که عناصر CacheKey و Scope را ترکیب می کند، جستجو می کند. به عبارت دیگر، برای بازیابی مقدار خاصی که توسط یک خط مشی PopulateCache به حافظه پنهان اضافه می شود، خط مشی LookupCache شما باید دارای عناصر مرتبط با کلید حافظه پنهان باشد که به همان روشی که خط مشی PopulateCache پیکربندی شده اند.
ذخیره سازی با هدف عمومی با خط مشی Populate Cache ، خط مشی LookupCache و سیاست InvalidateCache از حافظه پنهانی که شما پیکربندی می کنید یا حافظه پنهان مشترکی که به طور پیش فرض گنجانده شده است استفاده می کند. در بیشتر موارد، حافظه پنهان مشترک اساسی باید نیازهای شما را برآورده کند. برای استفاده از کش پیش فرض، به سادگی عنصر <CacheResource>
را حذف کنید.
برای اطلاعات بیشتر در مورد پیکربندی حافظه پنهان، به ایجاد و ویرایش کش محیطی مراجعه کنید. برای اطلاعات بیشتر درباره ذخیرهسازی دادههای زیربنایی، به بخش داخلی کش مراجعه کنید.
متغیرهای جریان
متغیرهای جریان را میتوان برای پیکربندی رفتار زمان اجرا پویا برای خطمشیها و جریانها، بر اساس سرصفحههای HTTP یا محتوای پیام، یا زمینه موجود در جریان، استفاده کرد. برای اطلاعات بیشتر در مورد متغیرهای جریان، به مرجع متغیرها مراجعه کنید.
متغیرهای Flow از پیش تعریف شده زیر پس از سفارشی کردن رفتار حافظه پنهانی که در یک خط مشی LookupCache تعریف کرده اید، در دسترس هستند.
متغیرها | تایپ کنید | اجازه | توضیحات |
---|---|---|---|
lookupcache.{policy-name}.cachename | رشته | فقط خواندنی | نام حافظه پنهان استفاده شده در خط مشی را برمی گرداند. |
lookupcache.{policy-name}.cachekey | رشته | فقط خواندنی | کلید استفاده شده را برمی گرداند. |
lookupcache.{policy-name}.cachehit | بولی | فقط خواندنی | اگر خط مشی مقداری برای کلید حافظه پنهان مشخص شده پیدا کند صحیح است. |
lookupcache.{policy-name}.assignto | رشته | فقط خواندنی | متغیری را که کش به آن اختصاص داده شده است برمی گرداند. |
کدهای خطا
This section describes the error messages and flow variables that are set when this policy triggers an error. This information is important to know if you are developing fault rules for a proxy. To learn more, see What you need to know about policy errors and Handling faults.
Error code prefix
N/A
Runtime errors
This policy does not throw any runtime errors.
Deployment errors
These errors can occur when you deploy a proxy containing this policy.
Error name | Cause | Fix |
---|---|---|
InvalidCacheResourceReference |
This error occurs if the <CacheResource> element is set to a
name which does not exist in the environment where the API proxy is being deployed. |
build |
InvalidTimeout |
If the <CacheLookupTimeoutInSeconds> element is set to
a negative number, then the deployment of the API proxy fails. |
build |
CacheNotFound |
This error occurs if the specific cache mentioned in the error message has not been created on a specific Message Processor component. | build |
Fault variables
N/A
Example error response
N/A