إشعار
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تسجيل الدخول أو تغيير الدلائل.
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تغيير الدلائل.
ينطبق على: جميع مستويات إدارة واجهة برمجة التطبيقات
الخلفية (أو خلفية 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 مخصصة لتأسيس الثقة في شهادة الخادم الخلفي - على سبيل المثال، مع شهادات موقعة ذاتيا، أو شهادات جذر غير موثوقة، أو سلاسل شهادات جزئية.
إشعار
حاليا، يمكنك فقط تكوين تفاصيل شهادة CA في كيان خلفية في مستويات v2.
لإضافة تفاصيل شهادة CA، اتبع الخطوات التالية:
- في قسم بيانات اعتماد التفويض في تكوين الخلفية، اختر شهادات CA.
- اختر + إضافة تفاصيل شهادة CA.
- في لوحة شهادة إضافة CA ، اختر أحد الخيارات التالية:
- بصمة الشهادة - أدخل بصمة الإبهام (هاش SHA-1، SHA-256، أو SHA-512) لشهادة CA مخصصة.
- اسم الموضوع وبصمة المصدر - أدخل اسم الموضوع الذي يحدد بشكل فريد النسخة المرجعية وبصمة الإبهام الخاصة بالمصدر.
- حدد إضافة.
- حدد إنشاء.
إشعار
عند تكوين تفاصيل شهادة CA مخصصة في الكيان الخلفي، تقوم إدارة API دائما بالتحقق من اسم الشهادة وسلسلة الشهادة، بغض النظر عما إذا قمت بتفعيل أو تعطيل إعدادات التحقق في الخلفية backendTlsProperties.
تلميح
يمكنك أيضا تكوين تفاصيل شهادة CA بشكل برمجي باستخدام واجهة برمجة تطبيقات إدارة API REST. قم بتعيين الكيان backendTlsPropertiesفي الخلفية.
الواجهة الخلفية المرجعية باستخدام نهج تعيين الخدمة الخلفية
بعد إنشاء الخلفية، راجع إلى معرف الخلفية (الاسم) في واجهات برمجة التطبيقات الخاصة بك. استخدم النهج set-backend-service لتوجيه طلب واجهة برمجة تطبيقات وارد إلى الخلفية. إذا كنت قد قمت بالفعل بتكوين خدمة ويب خلفية لواجهة برمجة تطبيقات (API)، استخدم السياسة set-backend-service لإعادة توجيه الطلب إلى كيان خلفي. على سبيل المثال:
<policies>
<inbound>
<base />
<set-backend-service backend-id="myBackend" />
</inbound>
[...]
<policies/>
إشعار
بدلا من ذلك، يمكنك استخدام base-url. عادة ما يكون التنسيق هو https://backend.com/api. تجنب إضافة شرطة مائلة في النهاية لمنع التكوينات الخاطئة. عادة، base-url يجب أن تتطابق قيمة نقطة نهاية HTTP(S) في الخلفية لتمكين التكامل السلس بين الواجهة الأمامية والخلفية. تضم مثيلات إدارة واجهة برمجة التطبيقات اسم خدمة الخلفية إلى .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 في نماذج مايكروسوفت فاوندري)، يحتاج العميل إلى الاحتفاظ بمعرف الجلسة، واستخراج معرف الخيط من الجسم، والاحتفاظ بالزوج وإرسال الكوكي المناسب لكل مكالمة. علاوة على ذلك، يحتاج العميل إلى معرفة متى يرسل ملف تعريف ارتباط أو متى لا يرسل رأس ملف تعريف ارتباط. يمكن التعامل مع هذه المتطلبات بشكل مناسب عن طريق تحديد نهج المثال التالية:
<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.
- حدد إنشاء.
السياق. متغير الخلفية
عند تكوين كيان خلفية في إدارة واجهات برمجة التطبيقات، يمكنك الوصول إلى خصائص الخلفية في السياسات باستخدام context.Backendمتغير السياق.
الجدول التالي يسرد خصائص المتغير context.Backend .
| الخاصيه | الوصف |
|---|---|
Id |
معرف الموارد الخاص بكيان الواجهة الخلفية. |
Type |
نوع الخلفية: Single أو Pool. |
AzureRegion |
منطقة الخلفية، إذا تم تحديدها. |
مثال
يوضح المثال التالي كيفية تعيين رأس مخصص بنوع الخلفية في سياسة واردة:
<inbound>
<base />
<set-backend-service backend-id="my-backend" />
<set-header name="X-Backend-Type" exists-action="override">
<value>@(context.Backend?.Type ?? "n/a")</value>
</set-header>
</inbound>
القيود
- بالنسبة إلى مستويات المطورPremium، يمكن لمثيل إدارة API المنشور في شبكة ظاهرية داخلية ترك أخطاء HTTP 500
BackendConnectionFailureعندما يكون عنوان URL لنقطة النهاية للعبارة وعنوان URL الخلفي متماثلين. إذا واجهت هذا القيد اتبع الإرشادات في قيود طلب إدارة API المتسلسلة ذاتيًا في مقالة وضع الشبكة الظاهرية الداخلية في مدونة مجتمع التقنية. - حاليا، يمكنك تكوين قاعدة واحدة فقط لقاطع دائرة خلفية.
المحتوى ذو الصلة
- المدونة: استخدام قاطع دائرة إدارة واجهة برمجة تطبيقات Azure وموازنة التحميل مع خدمة Azure OpenAI
- قم بإعداد خلفية Service Fabric باستخدام مدخل Microsoft Azure.
- التشغيل السريع إنشاء تجمع خلفية في إدارة واجهة برمجة تطبيقات Azure باستخدام Bicep لطلبات OpenAI لموازنة التحميل
- راجع Azure API Management كمصدر لشبكة الأحداث للحصول على معلومات حول أحداث شبكة الأحداث التي تولدها البوابة عند انقطاع أو إعادة ضبط قاطع الدائرة. استخدم هذه الأحداث لاتخاذ إجراء قبل تصعيد مشكلات الواجهة الخلفية.