خط مشی InvalidateCache

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

نحوه‌ی پاک شدن مقادیر ذخیره شده در حافظه‌ی پنهان (cache) را پیکربندی می‌کند.

این خط‌مشی برای استفاده در ذخیره‌سازی کوتاه‌مدت و عمومی در نظر گرفته شده است. این خط‌مشی همراه با خط‌مشی Populate Cache (برای نوشتن ورودی‌ها) و خط‌مشی Lookup Cache (برای خواندن ورودی‌های حافظه پنهان) استفاده می‌شود.

برای ذخیره پاسخ‌های منابع backend، به سیاست ذخیره پاسخ (Response 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

نام داخلی سیاست. مقدار مشخصه 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 استفاده می‌شود. مقادیر APIProxyName، ProxyName و TargetName زمانی اجباری هستند که پیشوند CacheKey (یعنی یک پیشوند سفارشی) برای پاک کردن ورودی‌های حافظه پنهان اضافه شده توسط یک پروکسی API دیگر استفاده نشود.

عنصر <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>

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

<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> مقدار کلید cache را برای ورودی‌های نوشته شده در cache به ابتدای آن اضافه می‌کند. مقدار عنصر <Prefix> مقدار عنصر <Scope> را لغو می‌کند.

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

عنصر <CacheContext>/<ProxyName>

نام پروکسی که داده‌ها برای آن ذخیره شده‌اند را مشخص می‌کند.

<ProxyName>proxy_for_which_data_was_cached</ProxyName>

پیش‌فرض:

ناموجود

حضور:

اختیاری

نوع:

رشته

ویژگی‌ها

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

عنصر <PurgeChildEntries>

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

توجه داشته باشید که عنصر <KeyFragment> باید مشخص شده باشد. در غیر این صورت، تنظیم مقدار true برای <PurgeChildEntries> می‌تواند منجر به پاک شدن تمام ورودی‌های موجود در حافظه پنهان شود.

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

<PurgeChildEntries>true_to_purge_child_entries</PurgeChildEntries>

پیش‌فرض:

نادرست

حضور:

اختیاری

نوع:

بولی

عنصر <scope>

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

<Scope>scope_enumeration</Scope>

پیش‌فرض:

«اختصاصی»

حضور:

اختیاری

نوع:

رشته

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

orgName__envName__ application Name__deployedRevisionNumber__proxy|TargetName__ [ serializedCacheKey ].

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

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

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

مقدار محدوده توضیحات
Global

کلید کش (cache key) بین تمام پروکسی‌های API مستقر در محیط به اشتراک گذاشته می‌شود. کلید کش به شکل orgName __ envName __ اضافه می‌شود.

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

Application

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

کلید حافظه پنهان به شکل orgName__envName__ application Name اضافه شده است.

Proxy

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

کلید حافظه پنهان به شکل orgName__envName__ application Name__deployedRevisionNumber__proxyEndpointName اضافه شده است.

Target

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

کلید حافظه پنهان به شکل orgName__envName__ application Name__deployedRevisionNumber__targetEndpointName اضافه شده است.

Exclusive

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

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

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

کلید حافظه پنهان به شکل orgName__envName__ application Name__deployedRevisionNumber__proxyNameITargetName اضافه شده است.

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

apifactory__test__weatherapi__16__default__apiAccessToken
.

عنصر <CacheContext>/<TargetName>

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

<TargetName>endpoint_for_which_data_was_cached</TargetName>

پیش‌فرض:

ناموجود

حضور:

اختیاری

نوع:

رشته

ویژگی‌ها

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

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

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

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

کدهای خطا

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

پیشوند کد خطا

N/A

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

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

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

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

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

متغیرهای خطا

N/A

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

N/A