أنت الآن بصدد الاطّلاع على مستندات 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 |
الاسم الداخلي للسياسة. يمكن لقيمة السمة يمكنك، إذا أردت، استخدام العنصر |
لا ينطبق | مطلوب |
continueOnError |
اضبط القيمة على يمكنك ضبط القيمة على |
خطأ | اختياري |
enabled |
اضبط القيمة على اضبط القيمة على |
صحيح | اختياري |
async |
تم إيقاف هذه السمة نهائيًا. |
خطأ | منهي العمل به |
<DisplayName> عنصر
استخدِمه مع السمة name لتصنيف السياسة في
إدارة خادم وكيل لواجهة المستخدم باسم مختلف بلغة طبيعية.
<DisplayName>Policy Display Name</DisplayName>
| تلقائي |
لا ينطبق إذا لم تستخدم هذا العنصر، سيتم ضبط قيمة السمة |
|---|---|
| التواجد في المنزل | اختياري |
| النوع | سلسلة |
العنصر <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> يحلّ هذا العنصر محلّ العنصر |
<ExpiryDate> |
تحدّد هذه السمة التاريخ الذي يجب أن تنتهي فيه صلاحية إدخال في ذاكرة التخزين المؤقت. حدِّد سلسلة بالصيغة
<ExpirySettings> <ExpiryDate ref="var-containing-date">expiry</ExpiryDate> </ExpirySettings> إذا كان التاريخ المحدّد في الماضي، ستطبّق السياسة الحد الأقصى لمدة البقاء على قيد الحياة على الإدخال المخزّن مؤقتًا. الحدّ الأقصى هو 30 يومًا. |
<TimeOfDay> |
تحدّد هذه السمة الوقت من اليوم الذي يجب أن تنتهي فيه صلاحية إدخال ذاكرة التخزين المؤقت.
حدِّد سلسلة بالتنسيق <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 __. إذا حدّدت إدخال |
Application |
يتم استخدام اسم خادم وكيل لواجهة برمجة التطبيقات كبادئة. يتم إلحاق مفتاح ذاكرة التخزين المؤقت بالتنسيق orgName__envName__apiProxyName. |
Proxy |
يتم استخدام إعداد ProxyEndpoint كبادئة. يتم إلحاق مفتاح ذاكرة التخزين المؤقت بالشكل orgName__envName__apiProxyName__deployedRevisionNumber__proxyEndpointName . |
Target |
يتم استخدام إعدادات TargetEndpoint كبادئة. يتم إلحاق مفتاح ذاكرة التخزين المؤقت في النموذج orgName__envName__apiProxyName__deployedRevisionNumber__targetEndpointName . |
Exclusive |
تلقائي: وهذا هو الأكثر تحديدًا، وبالتالي يقلل من خطر حدوث تعارضات في مساحة الاسم ضمن ذاكرة تخزين مؤقت معيّنة. تتّخذ البادئة أحد الشكلَين التاليَين:
يتم إلحاق مفتاح ذاكرة التخزين المؤقت بالنموذج 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 على
اسم غير موجود في البيئة التي يتم نشر الخادم الوكيل لواجهة برمجة التطبيقات فيها. |
build |
CacheNotFound |
ذاكرة التخزين المؤقت المحدّدة في العنصر <CacheResource>
الموجودة. |
build |
متغيّرات الأخطاء
يتم ضبط هذه المتغيّرات عندما تؤدي هذه السياسة إلى ظهور خطأ. يمكنك الاطّلاع على مقالة ما تحتاج إلى معرفته للحصول على مزيد من المعلومات. حول أخطاء السياسة.
| المتغيرات | المكان | مثال |
|---|---|---|
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>