يتم الآن عرض مستندات 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 |
الاسم الداخلي للسياسة. يمكن أن تحتوي قيمة السمة اختياريًا، يمكنك استخدام العنصر |
لا ينطبق | عنصر مطلوب |
continueOnError |
يمكنك ضبطها على يمكنك ضبط القيمة على |
false | إجراء اختياري |
enabled |
اضبط الإعدادات على اضبط السياسة على |
صحيح | إجراء اختياري |
async |
تم إيقاف هذه السمة نهائيًا. |
false | منهي العمل به |
عنصر <DisplayName>
يمكنك استخدام هذه السمة بالإضافة إلى السمة name
لتصنيف السياسة في محرّر الخادم الوكيل لواجهة المستخدم الخاصة بالإدارة باستخدام اسم بلغة مختلفة.
<DisplayName>Policy Display Name</DisplayName>
تلقائي |
لا ينطبق إذا حذفت هذا العنصر، سيتم استخدام قيمة السمة |
---|---|
التواجد في المنزل | إجراء اختياري |
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> يحلّ هذا العنصر محل عنصر |
<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
الاختيارية في العنصر الفرعي، ستسترد السياسة
قيمة انتهاء الصلاحية من متغيّر السياق المُسمّى. وإذا لم يتم تحديد المتغيّر،
تستخدم السياسة القيمة النصية للعنصر الفرعي.
عنصر <النطاق>
يتم استخدام التعداد لإنشاء بادئة لمفتاح ذاكرة تخزين مؤقت عند عدم توفير العنصر <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 __. إذا حدّدت الإدخال |
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_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> في السياسة تعبئة التعبئة المؤقت على اسم غير متوفّر في البيئة التي يتم فيها نشر الخادم الوكيل لواجهة برمجة التطبيقات. |
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>