إشعار
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تسجيل الدخول أو تغيير الدلائل.
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تغيير الدلائل.
ينطبق على: جميع مستويات إدارة واجهة برمجة التطبيقات
الخلفية (أو خلفية API)في API Management هي خدمة HTTP التي تنفذ واجهة برمجة التطبيقات الأمامية وعملياتها.
عند استيراد بعض واجهات برمجة التطبيقات، تقوم إدارة API تلقائيا بتكوين الواجهة الخلفية لواجهة برمجة التطبيقات. على سبيل المثال، تقوم APIM بتكوين خدمة الويب الخلفية عند الاستيراد:
بالنسبة لواجهات برمجة التطبيقات الأخرى، مثل واجهات برمجة التطبيقات من خدمات Azure، تقوم باستيراد مورد Azure دون تحديد خدمة الخلفية بشكل صريح. تتضمن الأمثلة ما يلي:
- تطبيق Azure Function الذي يعمل بتقنية HTTP
- تطبيق منطقي.
تدعم إدارة واجهات برمجة التطبيقات أيضا استخدام موارد أخرى كواجهة خلفية لواجهة برمجة التطبيقات (API)، مثل:
- مجموعة Service Fabric.
- خدمات الذكاء الاصطناعي
- خدمة مخصصة
لهذه الخلفيات، يمكنك إنشاء كيان خلفية في إدارة واجهات برمجة التطبيقات والرجوع إليه في واجهات برمجة التطبيقات الخاصة بك.
فوائد الواجهات الخلفية
تدعم APIM كيانات الواجهة الخلفية حتى تتمكن من إدارة خدمات الواجهة الخلفية لواجهة برمجة التطبيقات الخاصة بك. يقوم كيان الواجهة الخلفية بتغليف معلومات حول خدمة الواجهة الخلفية، وتعزيز إمكانية إعادة الاستخدام عبر واجهات برمجة التطبيقات وتحسين الحوكمة.
استخدم الواجهات الخلفية لواحد أو أكثر مما يلي:
- تخويل بيانات اعتماد الطلبات إلى خدمة الواجهة الخلفية
- استفد من وظيفة إدارة واجهة برمجة التطبيقات للحفاظ على الأسرار في Azure Key Vault إذا تم تكوين القيم المسماة لمصادقة الرؤوس أو معلمات الاستعلام
- تحديد قواعد قاطع الدوائر لحماية الواجهة الخلفية من عدد كبير جدا من الطلبات
- توجيه طلبات موازنة التحميل أو توجيهها إلى واجهات خلفية متعددة
تكوين وإدارة الكيانات الخلفية في بوابة Azure، أو باستخدام واجهات برمجة التطبيقات أو الأدوات الخاصة ب Azure.
إنشاء خلفية
يمكنك إنشاء خلفية في بوابة Azure، أو باستخدام واجهات برمجة تطبيقات Azure أو أدوات.
إشعار
عندما تستورد بعض واجهات برمجة التطبيقات، مثل واجهات برمجة التطبيقات من Microsoft Foundry أو خدمات الذكاء الاصطناعي الأخرى، تقوم إدارة واجهات برمجة التطبيقات تلقائيا بتكوين كيان خلفي.
لإنشاء خلفية في المدخل:
- سجل الدخول إلى البوابة واذهب إلى مثيل إدارة واجهة برمجة التطبيقات الخاصة بك.
- في القائمة اليسرى، حدد واجهات برمجة التطبيقات>Backends>+ Create new backend.
- في صفحة الخلفية ، أكمل الخطوات التالية:
- أدخل اسما للواجهة الخلفية والوصف الاختياري.
- اختر نوع استضافة Backend، مثل مورد Azure لمورد Azure مثل تطبيق Function App أو تطبيق منطقي، أو URL مخصص لخدمة مخصصة، أو مجموعة Service Fabric .
- في عنوان URL لوقت التشغيل، أدخل عنوان URL لخدمة الواجهة الخلفية التي تتم إعادة توجيه طلبات واجهة برمجة التطبيقات إليها.
- ضمن خيارات متقدمة، قم بتعطيل سلسلة الشهادات أو التحقق من صحة اسم الشهادة للواجهة الخلفية اختياريا.
- ضمن إضافة خدمة الواجهة الخلفية هذه إلى تجمع الواجهة الخلفية، حدد أو أنشئ تجمعا متوازن التحميل للواجهة الخلفية اختياريا.
- ضمن قاعدة قاطع الدائرة، قم بتكوين قاطع دائرة اختياريا للواجهة الخلفية.
- ضمن بيانات اعتماد التخويل، قم بتكوين بيانات الاعتماد اختياريا لتخويل الوصول إلى الخلفية. تتضمن الخيارات عنوان طلب أو معلمة استعلام أو شهادة عميل أو هوية مدارة معينة من قبل النظام أو معينة من قبل المستخدم تم تكوينها في مثيل APIM.
- حدد إنشاء.
بعد إنشاء خلفية، يمكنك تحديث إعدادات الخلفية في أي وقت. على سبيل المثال، يمكنك إضافة قاعدة قاطع الدائرة، أو تغيير عنوان URL وقت التشغيل، أو إضافة بيانات اعتماد التفويض.
تكوين الهوية المدارة لبيانات اعتماد التخويل
يمكنك استخدام هوية مدارة معينة من قبل النظام أو معينة من قبل المستخدم تم تكوينها في مثيل APIM لتخويل الوصول إلى خدمة الواجهة الخلفية. لتكوين هوية مدارة لبيانات اعتماد التفويض، أكمل الخطوات التالية:
في قسم Authorization credentials في تكوين الخلفية، حدد علامة التبويب Managed identity ، وحدد Enable.
في هوية العميل، اختر إما هوية معينة للنظام أو هوية معينة من قبل المستخدم قمت بتكوينها في مثيلك.
في معرف المورد، أدخل خدمة Azure الهدف أو معرف التطبيق لتطبيق Microsoft Entra الخاص بك الذي يمثل الخلفية. على سبيل المثال، Enter
https://cognitiveservices.azure.comلخدمة Azure OpenAI.لمزيد من الأمثلة، راجع مرجع نهج الهوية المدارة للمصادقة .
حدد إنشاء.
إشعار
قم أيضا بتعيين الهوية المدارة الأذونات المناسبة أو دور RBAC للوصول إلى خدمة الواجهة الخلفية. على سبيل المثال، إذا كانت الواجهة الخلفية خدمة Azure OpenAI، قم بتعيين الدور للهوية Cognitive Services User المدارة.
تكوين الشهادات لبيانات اعتماد التفويض
يمكنك تأمين الوصول عبر البوابة إلى خدمة الخلفية باستخدام المصادقة المتبادلة عبر TLS مع شهادات العميل أو شهادات سلطة الشهادات المخصصة (CA).
تكوين شهادة العميل
إذا كانت خدمة الخلفية مؤمنة بشهادة صادرة عن سلطة معتمدة معروفة، يمكنك إضافة شهادة عميل في كيان الخلفية:
- أضف الشهادة إلى مثيل إدارة واجهة برمجة التطبيقات. يمكنك الرجوع إلى شهادة تدار في Azure Key Vault أو رفع ملف PFX.
- في قسم بيانات اعتماد التفويض في تكوين الخلفية، اختر تبويب شهادات العميل .
- في القائمة المنسدلة، اختر شهادة العميل التي تريد استخدامها.
- حدد إنشاء.
تكوين شهادة CA
إذا كانت خدمة الواجهة الخلفية تستخدم شهادة CA مخصصة، يمكنك الرجوع إلى شهادة CA المخصصة في الكيان الخلفي. قد تحتاج إلى القيام بهذه الخطوة لبناء الثقة في شهادة الخادم الخلفي - على سبيل المثال، مع شهادات موقعة ذاتيا، أو شهادات جذر غير موثوقة، أو سلاسل شهادات جزئية.
إشعار
حاليا، يمكنك فقط تكوين تفاصيل شهادة CA في كيان خلفية في مستويات v2.
لإضافة تفاصيل شهادة CA، اتبع الخطوات التالية:
- في قسم بيانات اعتماد التفويض في تكوين الخلفية، اختر شهادات CA.
- اختر + إضافة تفاصيل شهادة CA.
- في لوحة شهادة إضافة CA ، اختر أحد الخيارات التالية:
- بصمة الشهادة - أدخل بصمة الإبهام (هاش SHA-1، SHA-256، أو SHA-512) لشهادة CA مخصصة.
- اسم الموضوع وبصمة المصدر - أدخل اسم الموضوع الذي يحدد بشكل فريد النسخة المرجعية وبصمة الإبهام الخاصة بالمصدر.
- حدد إضافة.
- حدد إنشاء.
إشعار
عند تكوين تفاصيل شهادة CA مخصصة في الكيان الخلفي، تقوم إدارة API دائما بالتحقق من اسم الشهادة وسلسلة الشهادة، بغض النظر عما إذا قمت بتفعيل أو تعطيل إعدادات التحقق في الخلفية backendTlsProperties.
تلميح
يمكنك أيضا تكوين تفاصيل شهادة CA بشكل برمجي باستخدام واجهة برمجة تطبيقات إدارة API REST. قم بتعيين الكيان backendTlsPropertiesفي الخلفية.
الواجهة الخلفية المرجعية باستخدام نهج تعيين الخدمة الخلفية
بعد إنشاء خلفية، يمكنك الرجوع إلى معرف الخلفية (الاسم) في واجهات برمجة التطبيقات الخاصة بك. استخدم النهج set-backend-service لتوجيه طلب واجهة برمجة تطبيقات وارد إلى الخلفية. إذا قمت بالفعل بتكوين خدمة ويب خلفية لواجهة برمجة تطبيقات، يمكنك استخدام النهج set-backend-service لإعادة توجيه الطلب إلى كيان الخلفية بدلا من ذلك. على سبيل المثال:
<policies>
<inbound>
<base />
<set-backend-service backend-id="myBackend" />
</inbound>
[...]
<policies/>
إشعار
بدلا من ذلك، يمكنك استخدام base-url. عادة ما يكون التنسيق هو https://backend.com/api. تجنب إضافة شرطة مائلة في النهاية لمنع التكوينات الخاطئة. عادة، base-url يجب أن تتطابق قيمة نقطة نهاية HTTP(S) في الخلفية لتمكين التكامل السلس بين الواجهة الأمامية والخلفية. لاحظ أن مثيلات APIM تلحق اسم خدمة الواجهة الخلفية ب base-url.
يمكنك استخدام المنطق الشرطي مع set-backend-service النهج لتغيير الخلفية الفعالة استنادا إلى الموقع أو البوابة التي تم استدعاؤها أو تعبيرات أخرى.
على سبيل المثال، فيما يلي نهج لتوجيه نسبة استخدام الشبكة إلى خلفية أخرى استنادا إلى البوابة التي تم استدعاؤها:
<policies>
<inbound>
<base />
<choose>
<when condition="@(context.Deployment.Gateway.Id == "factory-gateway")">
<set-backend-service backend-id="backend-on-prem" />
</when>
<when condition="@(context.Deployment.Gateway.IsManaged == false)">
<set-backend-service backend-id="self-hosted-backend" />
</when>
<otherwise />
</choose>
</inbound>
[...]
<policies/>
تلميح
كما تكتشف إدارة واجهة برمجة التطبيقات تلقائيا وتستخدم الكيانات الخلفية عند استلام طلبات API. في وقت التشغيل، إذا كان هناك كيان خلفية يطابق عنوان URL لخدمة خلفية ترسل إليها إدارة API طلبا، فإنه يستخدم الكيان الخلفي. لا يجب أن تستخدم set-backend-serviceصراحة .
قاطع الدائرة
تعرض إدارة واجهة برمجة التطبيقات خاصية قاطع دائرة في مورد الخلفية لحماية خدمة الواجهة الخلفية من الارتباك بسبب عدد كبير جدا من الطلبات.
- تحدد خاصية قاطع الدائرة قواعد لرحلة قاطع الدائرة، مثل عدد شروط الفشل أو النسبة المئوية لها خلال فاصل زمني محدد ونطاق من رموز الحالة التي تشير إلى حالات الفشل.
- عندما يقوم قاطع الدائرة بالرحلات، تتوقف APIM عن إرسال الطلبات إلى خدمة الواجهة الخلفية لفترة محددة، وترجع استجابة خدمة 503 غير متوفرة للعميل.
- بعد مدة الرحلة المكونة، يتم إعادة تعيين الدائرة واستئناف حركة المرور إلى الخلفية.
قاطع الدائرة الخلفية هو تنفيذ لنمط قاطع الدائرة للسماح للواجهة الخلفية بالتعافي من حالات التحميل الزائد. فهو يزيد من نهج تحديد المعدلات العامة والحد من التزامن التي يمكنك تنفيذها لحماية بوابة إدارة واجهة برمجة التطبيقات وخدمات الواجهة الخلفية.
إشعار
- حاليا، قاطع الدائرة الخلفية غير مدعوم في مستوى الاستهلاك لإدارة واجهة برمجة التطبيقات.
- نظرا للطبيعة الموزعة لبنية API Management، فإن قواعد تعثر قاطع الدوائر تقريبية. نسخ مختلفة من البوابة لا تزامن ولا تطبق قواعد قاطع الدائرة بناء على المعلومات الموجودة في نفس الحالة.
- حاليا، يمكنك تكوين قاعدة واحدة فقط لقاطع دائرة خلفية.
أنذر
إذا قمت بتكوين خدمة Azure OpenAI كواجهة خلفية وتلقت الخدمة عددا كبيرا جدا من الطلبات، فإنها ترجع 429 Too Many Requests رمز حالة الاستجابة ورأسا Retry-After بقيمة يمكن أن تكون كبيرة (على سبيل المثال، يوم واحد). مع الخلفيات الخلفية ل Azure OpenAI، نفذ قواعد قاطع الدائرة للتعامل مع الردود 429 وقبول Retry-After المدة.
مثال
استخدم مدخل Microsoft Azure أو API Management REST API أو قالب Bicep أو ARM لتكوين قاطع دائرة في خلفية. في المثال التالي، يقوم قاطع الدائرة في myBackend في مثيل API Management برحلات myAPIM عند وجود ثلاثة رموز حالة أو أكثر 5xx تشير إلى أخطاء الخادم في ساعة واحدة.
يتم إعادة تعيين قاطع الدائرة في هذا المثال بعد ساعة واحدة.
Retry-After إذا كان الرأس موجودا في الاستجابة، يقبل قاطع الدائرة القيمة وينتظر الوقت المحدد قبل إرسال الطلبات إلى الخلفية مرة أخرى.
- في مدخل Microsoft Azure، انتقل إلى مثيل APIM.
- في القائمة اليسرى، حددواجهات>برمجة التطبيقات> الخلفية الخلفية.
- في الصفحة الخلفية، حدد الإعدادات إعدادات>قاطع الدائرة إضافة>جديد.
- في صفحة Create new circuit breaker ، قم بتكوين القاعدة:
- اسم القاعدة: أدخل اسما للقاعدة، مثل myBackend.
- عدد الفشل: أدخل 3.
- الفاصل الزمني للفشل: اترك القيمة الافتراضية ساعة واحدة.
- نطاق رمز حالة الفشل: حدد 500 - 599.
- مدة الرحلة: اترك القيمة الافتراضية ساعة واحدة.
- تحقق من عنوان "Retry-After" في استجابة HTTP: حدد True (Accept).
تجمع متوازن التحميل
تدعم إدارة واجهات برمجة التطبيقات مجموعات الخلفيات عندما ترغب في تنفيذ عدة خلفيات لواجهة برمجة تطبيقات وطلبات توازن التحميل عبر تلك الخلفيات. التجمع هو مجموعة من الخلفيات التي يتم التعامل معها ككيان واحد لموازنة التحميل.
استخدم مجموعة الواجهة الخلفية للسيناريوهات مثل السيناريوهات التالية:
- وزع الحمل على عدة خلفيات، قد تحتوي على قواطع دائرة خلفية فردية.
- نقل الحمل من مجموعة من الخلفيات إلى مجموعة أخرى للترقية (نشر أزرق-أخضر).
إشعار
- يمكنك تضمين ما يصل إلى 30 خلفية في تجمع.
- نظرا للطبيعة الموزعة لبنية APIM، فإن موازنة تحميل الخلفية تقريبية. الإصدارات المختلفة من البوابة لا تزامن وتوازن الحمل بناء على المعلومات الموجودة في نفس المشكلة.
خيارات موازن التحميل
تدعم APIM خيارات موازنة التحميل التالية لتجمعات الواجهة الخلفية:
| خيار موازنة التحميل | الوصف |
|---|---|
| الترتيب الدوري | يتم توزيع الطلبات بالتساوي عبر الخلفيات في التجمع بشكل افتراضي. |
| المرجح | خصص أوزانا للخلفيات في المجموعة، ووزع الطلبات بناء على الوزن النسبي لكل خلفية. مفيد لسيناريوهات مثل عمليات النشر الزرقاء والأخضر. |
| مستند إلى الأولوية | نظم الخلفيات في مجموعات أولوية. أرسل الطلبات إلى مجموعات ذات أولوية أعلى أولا؛ داخل المجموعة، وزع الطلبات بالتساوي أو حسب الأوزان المخصصة. |
إشعار
تستخدم خدمة إدارة واجهة برمجة التطبيقات الخلفيات في مجموعات ذات أولوية منخفضة فقط عندما تكون جميع الخلفيات في مجموعات ذات أولوية أعلى غير متاحة بسبب انقطاع قواعد قاطع الدائرة.
الوعي بالجلسة
مع أي من خيارات توازن التحميل السابقة، يمكنك تفعيل الوعي بالجلسة (تقاربة الجلسة) لضمان أن جميع الطلبات من مستخدم معين خلال الجلسة تذهب إلى نفس الخلفية في المجموعة. تقوم إدارة واجهة برمجة التطبيقات بتعيين ملف تعريف ارتباط معرف جلسة العمل للحفاظ على حالة جلسة العمل. هذا الخيار مفيد، على سبيل المثال، في السيناريوهات ذات الخلفيات مثل مساعدي الدردشة الذكاء الاصطناعي أو وكلاء المحادثة الآخرين لتوجيه الطلبات من نفس الجلسة إلى نفس نقطة النهاية.
إشعار
يتم إصدار الوعي بالجلسة في التجمعات المتوازنة التحميل أولا إلى مجموعة التحديثالمبكر لبوابة الذكاء الاصطناعي.
إدارة ملفات تعريف الارتباط للتوعية بالجلسة
عندما تستخدم الوعي بالجلسة، يجب على العميل التعامل مع ملفات تعريف الارتباط بشكل مناسب. يحتاج العميل إلى تخزين Set-Cookie قيمة العنوان وإرسالها مع الطلبات اللاحقة للحفاظ على حالة جلسة العمل.
يمكنك استخدام نهج إدارة واجهة برمجة التطبيقات للمساعدة في تعيين ملفات تعريف الارتباط للتوعية بجلسة العمل. على سبيل المثال، في حالة واجهة برمجة تطبيقات المساعدين (وهي ميزة في Azure OpenAI في نماذج Microsoft Foundry)، يحتاج العميل إلى الاحتفاظ بمعرف الجلسة، واستخراج معرف الخيط من الجسم، والاحتفاظ بالزوج وإرسال الكوكي المناسب لكل استدعاء. علاوة على ذلك، يحتاج العميل إلى معرفة متى يرسل ملف تعريف ارتباط أو متى لا يرسل رأس ملف تعريف ارتباط. يمكن التعامل مع هذه المتطلبات بشكل مناسب عن طريق تحديد نهج المثال التالية:
<policies>
<inbound>
<base />
<set-backend-service backend-id="APIMBackend" />
</inbound>
<backend>
<base />
</backend>
<outbound>
<base />
<set-variable name="gwSetCookie" value="@{
var payload = context.Response.Body.As<JObject>();
var threadId = payload["id"];
var gwSetCookieHeaderValue = context.Request.Headers.GetValueOrDefault("SetCookie", string.Empty);
if(!string.IsNullOrEmpty(gwSetCookieHeaderValue))
{
gwSetCookieHeaderValue = gwSetCookieHeaderValue + $";Path=/threads/{threadId};";
}
return gwSetCookieHeaderValue;
}" />
<set-header name="Set-Cookie" exists-action="override">
<value>Cookie=gwSetCookieHeaderValue</value>
</set-header>
</outbound>
<on-error>
<base />
</on-error>
</policies>
مثال
استخدم المدخل أو API Management REST API أو قالب Bicep أو ARM لتكوين تجمع الخلفية. في المثال التالي، يتم تكوين myBackendPool الخلفية في مثيل إدارة واجهة برمجة التطبيقات myAPIM مع تجمع الخلفية. تسمى الواجهات الخلفية المثال في التجمع backend-1 و backend-2. كلتا الواجهة الخلفية في المجموعة ذات الأولوية القصوى؛ داخل المجموعة، الخلفية-1 لها وزن أكبر من الخلفية-2.
- في مدخل Microsoft Azure، انتقل إلى مثيل APIM.
- في القائمة اليسرى، حددواجهات>برمجة التطبيقات> الخلفية الخلفية.
- في صفحة Backends ، حدد علامة التبويب Load balancer .
- حدد + Create new pool.
- في صفحة إنشاء مجموعة جديدة متوازنة للحمل ، أدخل المعلومات التالية:
- الاسم: أدخل اسما للتجمع مثل myBackendPool.
- الوصف: أدخل وصفا اختياريا.
- إضافة الواجهات الخلفية إلى التجمع: حدد واجهة خلفية واحدة أو أكثر لإضافتها إلى التجمع.
- وزن الخلفية والأولوية: حدد تخصيص الوزن والأولوية لتكوين وزن وأولوية كل خلفية في التجمع. على سبيل المثال، إذا أضفت خلفيتين باسم backend-1 و backend-2، فقم بتعيين وزن backend-1 إلى 3 ووزن backend-2 إلى 1، وتعيين أولوية كلا الواجهة الخلفية إلى 1.
- حدد إنشاء.
القيود
- بالنسبة إلى مستويات المطورPremium، يمكن لمثيل إدارة API المنشور في شبكة ظاهرية داخلية ترك أخطاء HTTP 500
BackendConnectionFailureعندما يكون عنوان URL لنقطة النهاية للعبارة وعنوان URL الخلفي متماثلين. إذا واجهت هذا القيد اتبع الإرشادات في قيود طلب إدارة API المتسلسلة ذاتيًا في مقالة وضع الشبكة الظاهرية الداخلية في مدونة مجتمع التقنية. - حاليا، يمكنك تكوين قاعدة واحدة فقط لقاطع دائرة خلفية.
المحتوى ذو الصلة
- المدونة: استخدام قاطع دائرة إدارة واجهة برمجة تطبيقات Azure وموازنة التحميل مع خدمة Azure OpenAI
- قم بإعداد خلفية Service Fabric باستخدام مدخل Microsoft Azure.
- التشغيل السريع إنشاء تجمع خلفية في إدارة واجهة برمجة تطبيقات Azure باستخدام Bicep لطلبات OpenAI لموازنة التحميل
- راجع Azure API Management كمصدر لشبكة الأحداث للحصول على معلومات حول أحداث شبكة الأحداث التي تولدها البوابة عند انقطاع أو إعادة ضبط قاطع الدائرة. استخدم هذه الأحداث لاتخاذ إجراء قبل تصعيد مشكلات الواجهة الخلفية.