إشعار
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تسجيل الدخول أو تغيير الدلائل.
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تغيير الدلائل.
ينطبق على: جميع مستويات إدارة واجهة برمجة التطبيقات
قم بتكوين التخزين المؤقت في Azure API Management لتخزين الاستجابات لطلبات واجهة برمجة التطبيقات والمعلومات ذات الصلة واستردادها. من خلال تخزين الاستجابات من خدمات الواجهة الخلفية، يمكن لإدارة واجهة برمجة التطبيقات خدمة الطلبات المتطابقة اللاحقة مباشرة من ذاكرة التخزين المؤقت، مما يقلل من الحاجة إلى استدعاء خدمة الواجهة الخلفية بشكل متكرر. يمكن أن يؤدي التخزين المؤقت إلى تحسين أداء واجهة برمجة التطبيقات ، وتقليل حمل الواجهة الخلفية ، وتحسين التجربة الإجمالية للعملاء الذين يستصلون بواجهات برمجة التطبيقات من خلال إدارة واجهة برمجة التطبيقات.
تشرح هذه المقالة خيارات التخزين المؤقت في إدارة واجهة برمجة التطبيقات، وتسلط الضوء على السيناريوهات الرئيسية واعتبارات التكوين.
Important
يتطلب التخزين المؤقت خدمة تخزين مؤقت - إما ذاكرة تخزين مؤقت داخلية يتم نشرها تلقائيا كجزء من خدمة إدارة واجهة برمجة التطبيقات، أو ذاكرة تخزين مؤقت خارجية يتم نشرها من قبلك - وتكوين سياسات التخزين المؤقت لتحديد كيفية تطبيق التخزين المؤقت على طلبات واجهة برمجة التطبيقات.
خيارات خدمة التخزين المؤقت
توفر Azure API Management خيارات خدمة التخزين المؤقت التالية لتلبية متطلبات الأداء والبنية المختلفة.
داخلية (مضمنة): يتم توفير ذاكرة التخزين المؤقت الداخلية (المضمنة) تلقائيا في جميع مستويات خدمة إدارة واجهة برمجة التطبيقات (باستثناء طبقة الاستهلاك ). يختلف تنفيذ ذاكرة التخزين المؤقت الداخلية بين المستويات الكلاسيكية (المطوروالأساسيوالقياسيوالمتميز) ومستويات v2 (الإصدار الأساسي 2 والإصدار القياسي 2 والإصدار 2 المميز). توفر ذاكرة التخزين المؤقت المدمجة في طبقات v2 موثوقية محسنة. تعرف على المزيد حول التخزين المؤقت باستخدام ذاكرة التخزين المؤقت المدمجة.
ذاكرة التخزين المؤقت الخارجية: لتحسين الأداء والمثابرة، قم اختياريا بتكوين ذاكرة تخزين مؤقت خارجية متوافقة مع Redis، مثل Azure Managed Redis، لاستخدامها مع أي طبقة أو بوابة لخدمة إدارة واجهة برمجة التطبيقات. تعرف على المزيد حول إعداد ذاكرة تخزين مؤقت خارجية باستخدام Azure Managed Redis.
يقارن الجدول التالي إمكانات ذاكرة التخزين المؤقت الداخلية والخارجية.
| Capability | داخلي | خارجي |
|---|---|---|
| التوفير والإدارة التلقائية | ✔️ | ❌ |
| التكلفة المضافة | ❌ | ✔️ |
| التكوين المخصص | ❌ | ✔️ |
| التوفر في جميع المستويات والبوابات | غير متوفر في طبقة الاستهلاك أو البوابة المستضافة ذاتيا | ✔️ |
| التخزين الإقليمي | يتم توفير ذاكرة التخزين المؤقت في نفس المنطقة مثل مثيل إدارة واجهة برمجة التطبيقات ومشاركتها بين وحدات الحجم. في النشر متعدد المناطق ، يكون لكل منطقة ذاكرة تخزين مؤقت خاصة بها. |
يعتمد على تفضيل العميل |
| التخزين المستمر | ثابت في مستويات v2. في المستويات الكلاسيكية (المطوروالأساسيوالقياسيوالمميز)، لا تستمر محتويات ذاكرة التخزين المؤقت عند إجراء تحديثات الخدمة. |
✔️ |
| حدود كل طبقة | يختلف حجم ذاكرة التخزين المؤقت حسب مستوى الخدمة | غير محدود |
| الوصول المشترك من خلال مثيلات إدارة واجهة برمجة التطبيقات المتعددة | ❌ | ✔️ |
| دعم التخزين المؤقت الدلالي | ❌ | ✔️ |
| دعم التحميل المسبق للبيانات وتطهيرها | ❌ | ✔️ |
سيناريوهات التخزين المؤقت
استخدم التخزين المؤقت في Azure API Management لسيناريوهات مثل تلك الموجودة في الجدول التالي.
| السيناريو | الوصف | نوع ذاكرة التخزين المؤقت | السلوك مع فقدان توفر ذاكرة التخزين المؤقت أو الاتصال |
|---|---|---|---|
| تحسين تجربة العميل | تسريع معالجة الطلبات المتكررة للعملاء. | داخلي أو خارجي | تخدم الواجهة الخلفية الطلبات ويجب أن تتعامل مع الحمل الكامل إذا كانت ذاكرة التخزين المؤقت غير متوفرة. |
| التحكم في التكاليف وتوسيع نطاق الواجهة الخلفية | تقليل حمل الواجهة الخلفية والتكاليف عندما لا يتم توسيع نطاق الواجهة الخلفية لحركة المرور الكاملة. | خارجي | يعتمد على ذاكرة التخزين المؤقت وتكوين الخدمة. التوصية: حدد طبقة خدمة ذاكرة التخزين المؤقت بأعلى موثوقية وأداء مراقبة. |
| مخزن البيانات الوصفية | استخدم cache-store-value لتخزين البيانات العشوائية في ذاكرة التخزين المؤقت. | داخلي أو خارجي | يعتمد على ذاكرة التخزين المؤقت وتكوين الخدمة. |
Considerations:
في أي سيناريو تخزين مؤقت، ضع في اعتبارك احتمال فقدان توفر ذاكرة التخزين المؤقت أو الاتصال. تستخدم إدارة واجهة برمجة التطبيقات نهج "أفضل الجهد" لتوفر ذاكرة التخزين المؤقت. إذا لم تكن ذاكرة التخزين المؤقت التي تم تكوينها متوفرة، فستحدث أخطاء في ذاكرة التخزين المؤقت وتستمر الطلبات بشكل افتراضي إلى خدمة الواجهة الخلفية.
في المستويات الكلاسيكية لإدارة واجهة برمجة التطبيقات، تكون ذاكرة التخزين المؤقت الداخلية متقلبة ولا تستمر عبر تحديثات الخدمة. أثناء تحديث الخدمة، يتم مسح ذاكرة التخزين المؤقت الداخلية في عملية تدريجية تتضمن ما يصل إلى 50% من ذاكرة التخزين المؤقت في المرة الواحدة.
Note
يمكنك تكوين إعدادات تحديث الخدمة، بما في ذلك نافذة الصيانة للتحديثات، لتقليل تأثيرات العملاء المحتملة مثل فقدان ذاكرة التخزين المؤقت الداخلية.
إذا قمت بتكوين ذاكرة تخزين مؤقت خارجية، فقد تكون مستمرة، ولكنك مسؤول عن ضمان التوفر والاتصال.
لحماية خدمة الواجهة الخلفية من ارتفاعات حركة المرور التي قد تفرط في تحميلها عندما لا تتوفر ذاكرة التخزين المؤقت، قم بتكوين نهج تحديد المعدل (حد المعدل أو حد المعدل بمفتاح) مباشرة بعد أي نهج بحث في ذاكرة التخزين المؤقت.
سياسات التخزين المؤقت
تكوين نهج التخزين المؤقت للتحكم في كيفية تخزين استجابات واجهة برمجة التطبيقات مؤقتا واستردادها في Azure API Management.
بشكل افتراضي في نهج التخزين المؤقت، تستخدم إدارة واجهة برمجة التطبيقات ذاكرة تخزين مؤقت خارجية إذا تم تكوينها وتعود إلى ذاكرة التخزين المؤقت المضمنة بخلاف ذلك.
توفر إدارة واجهة برمجة التطبيقات سياسات التخزين المؤقت في أزواج، كما هو موضح في الجدول التالي. في تعريف النهج، قم بتكوين نهج بحث ذاكرة التخزين المؤقت في القسم
inboundللتحقق من الاستجابات المخزنة مؤقتا، ونهج مخزن ذاكرة التخزين المؤقت في القسمoutboundلتخزين الاستجابات الناجحة في ذاكرة التخزين المؤقت.
| السياسات | الوصف | الاستخدام |
|---|---|---|
| البحث / مخزن ذاكرة التخزين المؤقت | - استرداد استجابة من ذاكرة التخزين المؤقت - تخزين استجابة في طلب ذاكرة التخزين المؤقت |
- استخدم لاسترداد استجابة واجهة برمجة تطبيقات كاملة من ذاكرة التخزين المؤقت لطلب مماثل GET |
| قيمة / قيمة تخزين التخزين المؤقت | - استرداد قيمة معينة من ذاكرة التخزين المؤقت - تخزين قيمة معينة في ذاكرة التخزين المؤقت |
- استخدم لسيناريوهات التخزين المؤقت المخصصة باستخدام مفاتيح ذاكرة تخزين مؤقت محددة |
| azure-openai-semantic-cache-lookup / Azure-openai-semantic-cache-store | - تحقق مما إذا كانت هناك استجابة متشابهة دلاليا في ذاكرة التخزين المؤقت لطلب واجهة برمجة تطبيقات Azure OpenAI - تخزين استجابة لطلب واجهة برمجة تطبيقات Azure OpenAI |
- استخدم لاسترداد استجابات مماثلة لطلبات واجهة برمجة تطبيقات Azure OpenAI Chat Completion |
| LLM-دلالة-cache-lookup / متجر LLM الدلالي ذاكرة التخزين المؤقت | - تحقق مما إذا كانت هناك استجابة متشابهة دلاليا في ذاكرة التخزين المؤقت لطلب واجهة برمجة تطبيقات LLM - تخزين استجابة لطلب واجهة برمجة تطبيقات LLM |
- استخدم لاسترداد الردود المماثلة لطلبات واجهة برمجة تطبيقات إكمال دردشة LLM |
Tip
- تتضمن
durationسياسات تخزين الإدخالات في ذاكرة التخزين المؤقت سمة لتحديد مدة استمرار الإدخال المخزن مؤقتا. - استخدم cache-remove-value لإزالة قيمة معينة تم تحديدها بواسطة المفتاح من ذاكرة التخزين المؤقت.
أمثلة على نهج التخزين المؤقت
فيما يلي أمثلة أساسية لنهج التخزين المؤقت في إدارة واجهة برمجة التطبيقات. لمزيد من الأمثلة، راجع المقالات المرجعية لسياسة التخزين المؤقت .
التخزين المؤقت للاستجابة
قم بتخزين استجابة واجهة برمجة التطبيقات الكاملة مؤقتا في ذاكرة التخزين المؤقت الداخلية لخدمة طلبات متطابقة دون مكالمات خلفية. في هذا المثال، تخزن ذاكرة التخزين المؤقت الاستجابات لمدة سبعة أيام.
<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="604800" />
<base />
</outbound>
</policies>
التخزين المؤقت للقيمة
قم بتخزين قيم بيانات محددة مؤقتا لإعادة استخدامها عبر طلبات متعددة.
<policies>
<inbound>
<cache-lookup-value key="user-preferences" default-value="none" variable-name="preferences" />
<choose>
<when condition="@(context.Variables["preferences"].ToString() == "none")">
<!-- Load preferences from backend -->
<send-request mode="new" response-variable-name="prefsResponse">
<set-url>https://backend.api/user/preferences</set-url>
</send-request>
<cache-store-value key="user-preferences" value="@(((IResponse)context.Variables["prefsResponse"]).Body.As<string>())" duration="1800" />
</when>
</choose>
</inbound>
</policies>
حماية الحد من المعدل
كأفضل ممارسة، اجمع بين البحث عن ذاكرة التخزين المؤقت وتحديد المعدل لحماية خدمات الواجهة الخلفية.
<policies>
<inbound>
<cache-lookup-value key="@("data-" + context.Request.IpAddress)" variable-name="cachedData" />
<choose>
<when condition="@(!context.Variables.ContainsKey("cachedData"))">
<rate-limit calls="10" renewal-period="60" />
<!-- Proceed to backend -->
</when>
<otherwise>
<!-- Return cached data without rate limiting -->
<return-response>
<set-body>@((string)context.Variables["cachedData"])</set-body>
</return-response>
</otherwise>
</choose>
</inbound>
</policies>
اعتبارات الأمان
- البيانات الحساسة: تجنب التخزين المؤقت للاستجابات التي تحتوي على معلومات حساسة أو شخصية
- مفاتيح ذاكرة التخزين المؤقت: تأكد من أن مفاتيح ذاكرة التخزين المؤقت لا تعرض معلومات حساسة في السجلات أو التشخيصات
- التحكم في الوصول: تتطلب ذاكرة التخزين المؤقت الخارجية أمانا مناسبا للشبكة وعناصر التحكم في الوصول
- التشفير: استخدام TLS/SSL للاتصالات بمثيلات ذاكرة التخزين المؤقت الخارجية
المحتويات ذات الصلة
- تعرف على المزيد حول سياسات ذاكرة التخزين المؤقت في إدارة واجهة برمجة التطبيقات
- إعداد التخزين المؤقت الخارجي باستخدام Azure Managed Redis
- أمثلة التخزين المؤقت المخصصة مع سيناريوهات متقدمة
- مراقبة أداء إدارة واجهة برمجة التطبيقات ومقاييس التخزين المؤقت