سياسة تعبئة ذاكرة التخزين المؤقت

يتم الآن عرض مستندات Apigee Edge.
يمكنك الاطّلاع على وثائق Apigee X.

تضبط هذه السياسة طريقة كتابة القيم المخزّنة مؤقتًا في وقت التشغيل.

تم تصميم سياسة "تعبئة ذاكرة التخزين المؤقت" لكتابة الإدخالات في ذاكرة تخزين مؤقت قصيرة المدى للأغراض العامة. ويتم استخدامها مع سياسة ذاكرة التخزين المؤقت (لإدخال إدخالات ذاكرة التخزين المؤقت) وسياسة ذاكرة التخزين المؤقت غير الصالحة (للإدخالات غير الصالحة).

بالنسبة إلى التخزين المؤقت لردود الموارد الخلفية، يُرجى الاطّلاع على سياسة ذاكرة التخزين المؤقت للاستجابة.

مرجع العنصر

في ما يلي قائمة بالعناصر التي يمكنك ضبطها في هذه السياسة.

<PopulateCache async="false" continueOnError="false" enabled="true" name="Populate-Cache-1">
    <DisplayName>Populate Cache 1</DisplayName>
    <Properties/>
    <CacheKey>
        <Prefix/>
        <KeyFragment ref=""/>
    </CacheKey>
    <!-- Omit this element if you're using the included shared cache. -->
    <CacheResource/>
    <Scope>Exclusive</Scope>
    <ExpirySettings>
        <TimeoutInSeconds>300</TimeoutInSeconds>
    </ExpirySettings>
    <Source>flowVar</Source>
</PopulateCache>

سمات<Popizecache>

يصف الجدول التالي السمات الشائعة لجميع العناصر الرئيسية للسياسة:

السمة الوصف تلقائي التواجد في المنزل
name

الاسم الداخلي للسياسة. يمكن أن تحتوي قيمة السمة name على أحرف وأرقام ومسافات وواصلات وشرطات سفلية ونقاط. ويجب ألا تتجاوز هذه القيمة 255 حرفًا.

اختياريًا، يمكنك استخدام العنصر <DisplayName> لتصنيف السياسة في محرّر الخادم الوكيل لواجهة مستخدم الإدارة باستخدام اسم بلغة مختلفة.

لا ينطبق عنصر مطلوب
continueOnError

يمكنك ضبطها على false لعرض رسالة خطأ عند تعذّر تنفيذ إحدى السياسات. ويُعدّ هذا سلوكًا متوقعًا في معظم السياسات.

يمكنك ضبط القيمة على true لمواصلة تنفيذ العملية حتى بعد تعذُّر تنفيذ السياسة.

false إجراء اختياري
enabled

اضبط الإعدادات على true لفرض السياسة.

اضبط السياسة على false لإيقاف السياسة. لن يتم فرض السياسة حتى لو بقيت مرفقة بمسار.

صحيح إجراء اختياري
async

تم إيقاف هذه السمة نهائيًا.

false منهي العمل به

عنصر <DisplayName>

يمكنك استخدام هذه السمة بالإضافة إلى السمة name لتصنيف السياسة في محرّر الخادم الوكيل لواجهة المستخدم الخاصة بالإدارة باستخدام اسم بلغة مختلفة.

<DisplayName>Policy Display Name</DisplayName>
تلقائي

لا ينطبق

إذا حذفت هذا العنصر، سيتم استخدام قيمة السمة name للسياسة.

التواجد في المنزل إجراء اختياري
Type سلسلة

عنصر <cacheKey>

تضبط هذه السياسة مؤشرًا فريدًا لجزء من البيانات المخزَّنة في ذاكرة التخزين المؤقت.

يقتصر حجم مفاتيح ذاكرة التخزين المؤقت على 2 كيلوبايت.

<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>

يحدِّد هذا الإعداد ذاكرة التخزين المؤقت التي يجب تخزين الرسائل فيها.

لا تحذِف هذا العنصر تمامًا إذا كانت هذه السياسة (بالإضافة إلى سياسات Lookupcache وinvalidatcache) تستخدم ذاكرة التخزين المؤقت المشتركة المضمّنة.

<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>. لمزيد من المعلومات، يُرجى الاطّلاع على العمل باستخدام مفاتيح ذاكرة التخزين المؤقت.

السمات

السمة Type تلقائي عنصر مطلوب الوصف
مرجع سلسلة لا

المتغيّر الذي يتم الحصول على القيمة منه. يجب عدم استخدام هذه القيمة إذا كان هذا العنصر يحتوي على قيمة حرفية.

عنصر <cacheKey>/<بادئة>

يحدِّد قيمة لاستخدامها كبادئة مفتاح ذاكرة تخزين مؤقت.

<Prefix>prefix_string</Prefix>

تلقائي:

لا ينطبق

الحضور:

إجراء اختياري

النوع:

سلسلة

استخدِم هذه القيمة بدلاً من <Scope> عندما تريد تحديد القيمة الخاصة بك بدلاً من قيمة <Scope> متعددة. في حال تحديد ذلك، يضيف <Prefix> قيمة مفتاح ذاكرة التخزين المؤقت للإدخالات المكتوبة في ذاكرة التخزين المؤقت. تلغي قيمة العنصر <Prefix> قيمة العنصر <Scope>.

يمكنك استخدام العنصر <Prefix> مع <CacheKey> و<Scope>. لمزيد من المعلومات، يُرجى الاطّلاع على العمل باستخدام مفاتيح ذاكرة التخزين المؤقت.

عنصر <ExpirySettings>

يحدّد هذا الإعداد وقت انتهاء صلاحية إدخال ذاكرة التخزين المؤقت. في حال توفّر هذه العلامة، تلغي السمة <TimeoutInSeconds> كلتا السمتَين <TimeOfDay> و<ExpiryDate>.

<ExpirySettings>
  <!-- use exactly one of the following child elements -->
  <TimeoutInSeconds ref="duration_variable">seconds_until_expiration</TimeoutInSeconds>
  <ExpiryDate ref="date_variable">expiration_date</ExpiryDate>
  <TimeOfDay ref="time_variable">expiration_time</TimeOfDay>
</ExpirySettings>

تلقائي:

لا ينطبق

الحضور:

عنصر مطلوب

النوع:

لا ينطبق

عناصر <ExpirySettings> الثانوية

استخدِم عنصرًا فرعيًا واحدًا بالضبط. يقدّم الجدول التالي وصفًا للعناصر الفرعية في <ExpirySettings>:

العنصر الثانوي الوصف
<TimeoutInSeconds>

عدد الثواني التي يجب أن تنتهي صلاحية إدخال ذاكرة التخزين المؤقت بعدها.

<ExpirySettings>
  <TimeoutInSeconds ref="var-containing-duration">expiry</TimeoutInSeconds>
</ExpirySettings>

يحلّ هذا العنصر محل عنصر TimeoutInSec الذي تم إيقافه نهائيًا.

<ExpiryDate>

يحدّد التاريخ الذي تنتهي فيه صلاحية إدخال ذاكرة التخزين المؤقت. حدِّد سلسلة في النموذج mm-dd-yyyy.

<ExpirySettings>
  <ExpiryDate ref="var-containing-date">expiry</ExpiryDate>
</ExpirySettings>

إذا كان التاريخ المحدَّد في الماضي، ستطبِّق السياسة الحد الأقصى لمدة البقاء على الإدخال المُخزَّن مؤقتًا. الحد الأقصى هو 30 يومًا.

<TimeOfDay>

يحدّد هذا الإعداد الوقت الذي يجب أن تنتهي فيه صلاحية إدخال ذاكرة التخزين المؤقت. حدِّد سلسلة بتنسيق HH:mm:ss، حيث تمثّل HH الساعة 24 ساعة، بتوقيت المنطقة الزمنية للتوقيت العالمي المتفق عليه. على سبيل المثال، تشير الساعة 14:30:00 إلى 2:30 بعد الظهر.

<ExpirySettings>
  <TimeOfDay ref="var-containing-time">expiry</TimeOfDay>
</ExpirySettings>

يجب تحديد عنصر واحد فقط من العناصر الفرعية المحتمَلة. إذا حدّدت عناصر متعددة، يكون ترتيب الأسبقية هو:TimeoutInSeconds، ExpiryDate، TimeOfDay.

مع كل عنصر من العناصر الفرعية المذكورة أعلاه في <ExpirySettings>، إذا حدّدت السمة ref الاختيارية في العنصر الفرعي، ستسترد السياسة قيمة انتهاء الصلاحية من متغيّر السياق المُسمّى. وإذا لم يتم تحديد المتغيّر، تستخدم السياسة القيمة النصية للعنصر الفرعي.

عنصر <النطاق>

يتم استخدام التعداد لإنشاء بادئة لمفتاح ذاكرة تخزين مؤقت عند عدم توفير العنصر <Prefix> في العنصر <CacheKey>.

<Scope>scope_enumeration</Scope>

تلقائي:

"حصري"

الحضور:

إجراء اختياري

النوع:

سلسلة

يحدّد الإعداد <Scope> مفتاح ذاكرة تخزين مؤقت يُضاف إلى القيمة <Scope>. على سبيل المثال، سيظهر مفتاح ذاكرة التخزين المؤقت على النحو التالي عند ضبط النطاق على Exclusive:

orgName__envName__apiProxyName__deployedRevisionNumber__proxy|TargetName__ [ serialatedcacheKey ]

في حال توفّر عنصر <Prefix> في <CacheKey>، يحلّ محلّ قيمة <Scope>. وتشمل القيم الصالحة التعداد أدناه.

يمكنك استخدام العنصر <Scope> مع <CacheKey> و<Prefix>. لمزيد من المعلومات، يُرجى الاطّلاع على العمل باستخدام مفاتيح ذاكرة التخزين المؤقت.

القِيم المقبولة

Global

تتم مشاركة مفتاح ذاكرة التخزين المؤقت على جميع الخوادم الوكيلة لواجهة برمجة التطبيقات التي يتم نشرها في البيئة. تم إرفاق مفتاح ذاكرة التخزين المؤقت بالصيغة orgName __ envName __.

إذا حدّدت الإدخال <CacheKey> باستخدام نطاق apiAccessToken <KeyFragment> ونطاق <Global>، يتم تخزين كل إدخال على أنّه orgName__envName__apiAccessToken، تليه القيمة التسلسلية لرمز الدخول. بالنسبة إلى الخادم الوكيل لواجهة برمجة التطبيقات الذي يتم نشره في بيئة تُعرف باسم "الاختبار" في مؤسسة تُسمى "apiapi"، سيتم تخزين رموز الدخول ضمن مفتاح ذاكرة التخزين المؤقت التالي: apifactory__test__apiAccessToken.

Application

يتم استخدام اسم الخادم الوكيل لواجهة برمجة التطبيقات كبادئة.

يتم إضافة مفتاح ذاكرة التخزين المؤقت إلى النموذج orgName__envName__apiProxyName.

Proxy

يتم استخدام ضبط ProxyEndpoint كبادئة.

يتم إضافة مفتاح ذاكرة التخزين المؤقت إلى النموذج orgName__envName__apiProxyName__deployedRevisionNumber__proxyEndpointName .

Target

وتُستخدم إعدادات TargetEndpoint كبادئة.

تم إضافة مفتاح ذاكرة التخزين المؤقت إلى النموذج orgName__envName__apiProxyName__deployedRevisionNumber__targetEndpointName .

Exclusive

تلقائي: هذه هي الطريقة الأكثر تحديدًا، وبالتالي فهي تشكّل خطرًا ضئيلاً لتصادمات مساحة الاسم ضمن ذاكرة تخزين مؤقت معيّنة.

البادئة هي أحد النموذجين:

  • إذا تم إرفاق السياسة بتدفق ProxyEndpoint، تكون البادئة بتنسيق ApiProxyName_ProxyEndpointName.
  • إذا تم إرفاق السياسة في TargetEndpoint، تكون البادئة بالصيغة ApiProxyName_TargetName.

تم إضافة مفتاح ذاكرة التخزين المؤقت إلى النموذج orgName__envName__apiProxyName__deployedRevisionNumber__proxyNameITargetName

على سبيل المثال، قد تبدو السلسلة الكاملة على النحو التالي:

apifactory__test__weatherapi__16__default__apiAccessToken
.

عنصر <المصدر>

يحدّد المتغيّر الذي يجب كتابة قيمته إلى ذاكرة التخزين المؤقت.

<Source>source_variable</Source>

تلقائي:

لا ينطبق

الحضور:

عنصر مطلوب

النوع:

سلسلة

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

يمكنك استخدام هذه السياسة للتخزين المؤقت للأغراض العامة. في وقت التشغيل، تكتب السياسة <PopulateCache> البيانات من المتغيّر الذي حدّدته في العنصر <Source> إلى ذاكرة التخزين المؤقت التي حدّدتها في العنصر <CacheResource>. ويمكنك استخدام العناصر <CacheKey> و<Scope> و<Prefix> لتحديد مفتاح يمكنك استخدامه من السياسة <LookupCache> لاسترداد القيمة. يمكنك استخدام العنصر <ExpirySettings> لضبط وقت انتهاء صلاحية القيمة المخزّنة مؤقتًا.

التخزين المؤقت للأغراض العامة من خلال السياسة "تعبئة ذاكرة التخزين المؤقت" وسياسة LookupCache وسياسة صلاحية ذاكرة التخزين المؤقت تستخدم إما ذاكرة التخزين المؤقت التي تضبطها أو ذاكرة التخزين المؤقت المشتركة التي يتم تضمينها تلقائيًا. في معظم الحالات، يجب أن تلبي ذاكرة التخزين المؤقت المشتركة الأساسية احتياجاتك. لاستخدام ذاكرة التخزين المؤقت هذه، ما عليك سوى حذف العنصر <CacheResource>.

حدود ذاكرة التخزين المؤقت: تنطبق حدود ذاكرة التخزين المؤقت المختلفة، مثل الاسم وحجم القيمة وإجمالي عدد ذاكرات التخزين المؤقت وعدد العناصر في ذاكرة التخزين المؤقت وتاريخ انتهاء الصلاحية.

للتعرُّف على المزيد من المعلومات عن مخزن البيانات الأساسي، يُرجى الاطِّلاع على المساحات الداخلية لذاكرة التخزين المؤقت. لمزيد من المعلومات حول ضبط ذاكرة التخزين المؤقت، راجِع إنشاء ذاكرة تخزين مؤقت للبيئة وتعديلها.

لمحة عن تشفير ذاكرة التخزين المؤقت

Edge for Public Cloud: يتم تشفير ذاكرة التخزين المؤقت فقط في المؤسسات التي تستخدم PCI وHIPAA. يتم ضبط التشفير لهذه المؤسسات أثناء توفير المتطلبات اللازمة للمؤسسة.

رموز الخطأ

يصف هذا القسم رموز الخطأ ورسائل الخطأ التي يتم عرضها والمتغيّرات التي تم ضبطها من خلال Edge عندما تؤدي هذه السياسة إلى عرض خطأ. من المهم معرفة هذه المعلومات إذا كنت بصدد تطوير قواعد أخطاء للتعامل مع الأخطاء. لمزيد من المعلومات، يُرجى الاطّلاع على المعلومات التي تحتاج إلى معرفتها عن الأخطاء المتعلقة بالسياسات والتعامل مع الأخطاء.

أخطاء وقت التشغيل

يمكن أن تحدث هذه الأخطاء عند تنفيذ السياسة.

رمز الخطأ حالة HTTP يحدث في الحالات
policies.populatecache.EntryCannotBeCached 500 لا يمكن إجراء تخزين مؤقت للإدخال. كائن الرسالة الذي يتم تخزينه مؤقتًا ليس مثالاً لفئة قابلة للتسلسل.

أخطاء النشر

يمكن أن تحدث هذه الأخطاء عند نشر خادم وكيل يحتوي على هذه السياسة.

اسم الخطأ السبب إصلاح
InvalidCacheResourceReference يحدث هذا الخطأ في حال تم ضبط العنصر <CacheResource> في السياسة تعبئة التعبئة المؤقت على اسم غير متوفّر في البيئة التي يتم فيها نشر الخادم الوكيل لواجهة برمجة التطبيقات.
CacheNotFound لا تتوفّر ذاكرة التخزين المؤقت المحدّدة في العنصر <CacheResource>.

متغيّرات الخطأ

يتم ضبط هذه المتغيّرات عندما تؤدي هذه السياسة إلى حدوث خطأ. لمزيد من المعلومات، اطّلِع على ما تحتاج إلى معرفته عن أخطاء السياسات.

المتغيّرات المكان مثال
fault.name="fault_name" fault_name هو اسم الخطأ، كما هو موضّح في جدول أخطاء وقت التشغيل أعلاه. اسم الخطأ هو الجزء الأخير من رمز الخطأ. fault.name = "EntryCannotBeCached"
populatecache.policy_name.failed policy_name هو الاسم المحدَّد للمستخدم بخصوص السياسة التي أدى إلى حدوث الخطأ. populatecache.POP-CACHE-1.failed = true

مثال على استجابة الخطأ

{
  "fault": {
    "faultstring": "[entry] can not be cached. Only serializable entries are cached.",
    "detail": {
      "errorcode": "steps.populatecache.EntryCannotBeCached"
    }
  }
}

مثال على قاعدة خطأ

<FaultRule name="Populate Cache Fault">
    <Step>
        <Name>AM-EntryCannotBeCached</Name>
        <Condition>(fault.name Matches "EntryCannotBeCached") </Condition>
    </Step>
    <Condition>(populatecache.POP-CACHE-1.failed = true) </Condition>
</FaultRule>