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

أنت الآن بصدد الاطّلاع على مستندات Apigee Edge.
انتقِل إلى مستندات Apigee X.
info

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

تم تصميم سياسة Populate Cache لكتابة الإدخالات في ذاكرة تخزين مؤقت قصيرة الأجل للأغراض العامة. يتم استخدامها مع سياسة البحث في ذاكرة التخزين المؤقت (لقراءة إدخالات ذاكرة التخزين المؤقت) وسياسة إبطال ذاكرة التخزين المؤقت (لإبطال الإدخالات).

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

مرجع العنصر

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

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

سمات <PopulateCache>

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

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

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

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

لا ينطبق مطلوب
continueOnError

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

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

خطأ اختياري
enabled

اضبط القيمة على true لفرض السياسة.

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

صحيح اختياري
async

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

خطأ منهي العمل به

&lt;DisplayName&gt; عنصر

استخدِمه مع السمة name لتصنيف السياسة في إدارة خادم وكيل لواجهة المستخدم باسم مختلف بلغة طبيعية.

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

لا ينطبق

إذا لم تستخدم هذا العنصر، سيتم ضبط قيمة السمة name للسياسة على النحو التالي: استخدام البيانات المختلفة.

التواجد في المنزل اختياري
النوع سلسلة

العنصر <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 وInvalidateCache ذات الصلة) تستخدم ذاكرة التخزين المؤقت المشتركة المضمّنة.

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

السمات

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

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

العنصر <CacheKey>/<Prefix>

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

<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 في العنصر الثانوي، ستسترد السياسة قيمة انتهاء الصلاحية من متغيّر السياق المسمّى. إذا لم يتم تحديد المتغيّر، تستخدم السياسة قيمة النص الحرفي للعنصر الفرعي.

العنصر <Scope>

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

<Scope>scope_enumeration</Scope>

القيمة التلقائية:

"محتوى حصري"

الحضور:

اختياري

النوع:

سلسلة

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

orgName__envName__apiProxyName__deployedRevisionNumber__proxy|TargetName__ [ serializedCacheKey ]

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

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

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

Global

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

إذا حدّدت إدخال <CacheKey> باستخدام <KeyFragment> apiAccessToken ونطاق <Global>، يتم تخزين كل إدخال على النحو orgName__envName__apiAccessToken، يليه القيمة المتسلسلة لرمز الدخول. بالنسبة إلى خادم وكيل لواجهة برمجة التطبيقات تم نشره في بيئة باسم &quot;test&quot; في مؤسسة باسم &quot;apifactory&quot;، سيتم تخزين رموز الدخول ضمن مفتاح ذاكرة التخزين المؤقت التالي: 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>source_variable</Source>

القيمة التلقائية:

لا ينطبق

الحضور:

مطلوب

النوع:

سلسلة

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

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

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

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

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

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

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

رموز الخطأ

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

أخطاء بيئة التشغيل

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

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

أخطاء النشر

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

اسم الخطأ السبب إصلاح
InvalidCacheResourceReference يحدث هذا الخطأ في حال ضبط العنصر <CacheResource> في سياسة Populatecache على اسم غير موجود في البيئة التي يتم نشر الخادم الوكيل لواجهة برمجة التطبيقات فيها.
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>