الحصول من ذاكرة التخزين المؤقت

ينطبق على: جميع مستويات إدارة واجهة برمجة التطبيقات

استخدام النهج cache-lookup لإجراء ذاكرة التخزين المؤقت البحث عن استجابة ذاكرة التخزين المؤقت صالحة وإرجاعها عند توفرها. يمكن تطبيق هذا النهج في الحالات التي يظل فيها محتوى الاستجابة ثابتًا خلال فترة من الوقت. يقلل التخزين المؤقت للاستجابة من النطاق الترددي ومتطلبات المعالجة المفروضة على خادم الويب الخلفي ويقلل من زمن الوصول الذي يراه مستهلكو واجهة برمجة التطبيقات.

إشعار

يجب أن يحتوي هذا النهج على تخزين مطابق لنهج ذاكرة التخزين المؤقت.

هام

تتسم ذاكرة التخزين المؤقت المدمجة بأنها متغيرة وتتم مشاركتها من قِبل كافة الوحدات الموجودة في نفس المنطقة داخل نفس خدمة API Management.

إشعار

تعيين عناصر النهج والعناصر التابعة بالترتيب الوارد في بيان النهج. لمساعدتك في تكوين هذا النهج، يتيح المدخل محررًا موجهًا يستند إلى النموذج. تعلم كيفية إعداد نُهج APIM أو تعديلها.

نهج السياسة

<cache-lookup vary-by-developer="true | false" vary-by-developer-groups="true | false" caching-type="prefer-external | external | internal" downstream-caching-type="none | private | public" must-revalidate="true | false" allow-private-response-caching="@(expression to evaluate)">
  <vary-by-header>Accept</vary-by-header>
  <!-- should be present in most cases -->
  <vary-by-header>Accept-Charset</vary-by-header>
  <!-- should be present in most cases -->
  <vary-by-header>Authorization</vary-by-header>
  <!-- should be present when allow-private-response-caching is "true"-->
  <vary-by-header>header name</vary-by-header>
  <!-- optional, can be repeated -->
  <vary-by-query-parameter>parameter name</vary-by-query-parameter>
  <!-- optional, can be repeated -->
</cache-lookup>

سمات

السمة ‏‏الوصف مطلوبة افتراضي
السماح بالتخزين المؤقت للاستجابة الخاصة عند التعيين إلى true، يسمح التخزين المؤقت للطلبات التي تحتوي على عنوان "التخويل". يتم السماح بتعبيرات النهج. لا false
نوع التخزين المؤقت الاختيار بين القيم التالية من السمة:
- internal لاستخدام ذاكرة التخزين المؤقت لإدارة واجهة برمجة التطبيقات المضمنة،
- external لاستخدام ذاكرة التخزين المؤقت الخارجية كما هو موضح في استخدام ذاكرة التخزين المؤقت Azure الخارجية لـ Redis في Azure API Management,
- prefer-external لاستخدام ذاكرة التخزين المؤقت الخارجية إذا تم تكوينها أو ذاكرة التخزين المؤقت الداخلية خلاف ذلك.

تعبيرات النهج غير مسموح بها.
لا prefer-external
نوع التخزين المؤقت المتلقي للمعلومات يجب تعيين هذه السمة على إحدى القيم التالية.

- لا شيء - لا يسمح بالتخزين المؤقت المتلقي للمعلومات.
- خاص - يسمح بالتخزين المؤقت الخاص المتلقي للمعلومات.
عام - يسمح بالتخزين المؤقت الخاص والمشترك المتلقي للمعلومات.

يتم السماح بتعبيرات النهج.
لا لا شيء
يجب إعادة التحقق عند تمكين التخزين المؤقت المتلقي للمعلومات، يتم تشغيل أو إيقاف تشغيل must-revalidate توجيه التحكم في ذاكرة التخزين المؤقت في استجابات البوابة. يتم السماح بتعبيرات النهج. لا true
يختلف حسب المطور قم بالتعيين إلى true إلى ذاكرة التخزين المؤقت للاستجابات لكل حساب مطور يمتلك مفتاح اشتراك مضمن في الطلب. يتم السماح بتعبيرات النهج. ‏‏نعم‬ false
يختلف حسب مجموعات المطور قم بالتعيين إلى true إلى ذاكرة التخزين المؤقت للاستجابات لكل مجموعة مستخدم. يتم السماح بتعبيرات النهج. ‏‏نعم‬ false

عناصر

Name ‏‏الوصف مطلوب
يختلف حسب العنوان أضف عنصرا واحدا أو أكثر من هذه العناصر لبدء التخزين المؤقت للاستجابات لكل قيمة للعنوان المحدد، مثل Accept، ، Accept-Charset، Accept-Encoding، AuthorizationAccept-Language، Expect، From، . If-MatchHost لا
يختلف حسب معلمة الاستعلام أضف عنصرا واحدا أو أكثر من هذه العناصر لبدء التخزين المؤقت للاستجابات لكل قيمة لمعلمات الاستعلام المحددة. أدخل معلمات مفردة أو متعددة. استخدم الفاصلة المنقوطة كفاصل. لا

الاستخدام

ملاحظات الاستخدام

  • تقوم APIM فقط بإجراء بحث ذاكرة التخزين المؤقت لطلبات HTTP GET.
  • عند استخدام vary-by-query-parameter، قد تحتاج إلى تعريف المعلمات في قالب إعادة كتابة-uri أو تعيين السمة copy-unmatched-params إلى false. من خلال إلغاء تنشيط هذه العلامة، يتم إرسال المعلمات التي لم يتم الإعلان عنها إلى الخلفية.
  • يمكن استخدام هذا النهج مرة واحدة فقط في قسم النهج.

الأمثلة

مثال مع نهج مخزن ذاكرة التخزين المؤقت المقابلة

<policies>
    <inbound>
        <base />
        <cache-lookup vary-by-developer="false" vary-by-developer-groups="false" downstream-caching-type="none" must-revalidate="true" caching-type="internal" >
            <vary-by-query-parameter>version</vary-by-query-parameter>
        </cache-lookup>
    </inbound>
    <outbound>
        <cache-store duration="seconds" />
        <base />
    </outbound>
</policies>

مثال استخدام تعبيرات النهج

يبين هذا المثال كيفية تكوين مدة التخزين المؤقت لاستجابة APIM التي تطابق التخزين المؤقت للاستجابة لخدمة الواجهة الخلفية كما هو محدد بواسطة التوجيه Cache-Control للخدمة المدعومة.

<!-- The following cache policy snippets demonstrate how to control API Management response cache duration with Cache-Control headers sent by the backend service. -->

<!-- Copy this snippet into the inbound section -->
<cache-lookup vary-by-developer="false" vary-by-developer-groups="false" downstream-caching-type="public" must-revalidate="true" >
  <vary-by-header>Accept</vary-by-header>
  <vary-by-header>Accept-Charset</vary-by-header>
</cache-lookup>

<!-- Copy this snippet into the outbound section. Note that cache duration is set to the max-age value provided in the Cache-Control header received from the backend service or to the default value of 5 min if none is found  -->
<cache-store duration="@{
    var header = context.Response.Headers.GetValueOrDefault("Cache-Control","");
    var maxAge = Regex.Match(header, @"max-age=(?<maxAge>\d+)").Groups["maxAge"]?.Value;
    return (!string.IsNullOrEmpty(maxAge))?int.Parse(maxAge):300;
  }"
 />

لمزيد من المعلومات، راجع Policy expressions و Context variable.

لمزيد من المعلومات حول العمل مع النُهج، راجع: