دليل ترحيل البوابة المستضافة ذاتيًا
ينطبق على: المطور | قسط
توضح هذه المقالة كيفية ترحيل عمليات نشر البوابة المستضافة ذاتيًا الموجودة إلى البوابة المستضافة ذاتيًا v2.
هام
سينتهي دعم الإصدار 0 من البوابة المستضافة ذاتيا ل Azure API Management وصور حاوية الإصدار 1 في 1 أكتوبر 2023، جنبا إلى جنب مع واجهة برمجة تطبيقات التكوين المقابلة لها الإصدار 1. تعرف على المزيد في وثائق الإهمال الخاصة بنا
ما الجديد؟
بينما نسعى جاهدين لتسهيل نشر البوابة ذاتية الاستضافة للعملاء، قدمنا واجهة برمجة تطبيقات تكوين جديدة تزيل التبعية على Azure Storage، ما لم تكن تستخدم مفتش واجهة برمجة التطبيقات أو الحصص النسبية.
تتيح «واجهة برمجة تطبيقات» التكوين الجديدة للعملاء اعتماد البوابة المستضافة ذاتيًا، ونشرها، وتشغيلها بسهولة أكبر في بنيتهم الأساسية الحالية.
لقد قدّمنا علامات صورة حاوية جديدة للسماح للعملاء باختيار أفضل طريقة لتجربة بوابتنا ونشرها في الإنتاج.
لمساعدة العملاء على تشغيل بوابتنا في الإنتاج، قمنا بتوسيع إرشادات الإنتاج لدينا لتغطية كيفية التحجيم التلقائي للبوابة، ونشرها للحصول على قابلية وصول عالية في مجموعة Kubernetes الخاصة بك.
تعرف على المزيد حول اتصال بوابتنا، ومتطلبات البنية الأساسية الجديدة، وماذا يحدث إذا فقدت الاتصال في هذه المقالة.
المتطلبات الأساسية
قبل أن تتمكن من الترحيل إلى البوابة المستضافة ذاتيًا v2، تحتاج إلى التأكد من أن البنية الأساسية الخاصة بك تستوفي بالمتطلبات.
الترحيل إلى البوابة المستضافة ذاتيًا v2
يتطلب الترحيل من البوابة المستضافة ذاتيًا الإصدار 2 بضع خطوات صغيرة يجب القيام بها:
- استخدام صورة الحاوية الجديدة
- استخدام واجهة برمجة تطبيقات التكوين الجديدة
- تلبية أدنى متطلبات الأمان الخاصة بك
صورة الحاوية
قم بتغيير علامة الصورة في البرامج النصية للتوزيع لاستخدامها 2.0.0
أو أعلاه.
بدلاً من ذلك، اختر إحدى علامات صورة الحاوية الأخرى.
يمكنك العثور على قائمة كاملة بالعلامات المتوفرة هنا أو العثور علينا على Docker Hub.
استخدام واجهة برمجة تطبيقات التكوين الجديدة
من أجل الترحيل إلى البوابة المستضافة ذاتيًا v2، يحتاج العملاء إلى استخدام Configuration API v2.
حاليًا، توفر Azure API Management واجهات برمجة التطبيقات التكوين التالية للبوابة المستضافة ذاتيًا:
«خدمة التكوين» | عنوان URL | مدعوم | المتطلبات |
---|---|---|---|
v2 | {name}.configuration.azure-api.net |
نعم | الارتباط |
v1 | {name}.management.azure-api.net/subscriptions/{sub-id}/resourceGroups/{rg-name}/providers/Microsoft.ApiManagement/service/{name}?api-version=2021-01-01-preview |
لا | الارتباط |
يجب على العميل استخدام Configuration API v2 الجديدة عن طريق تغيير البرامج النصية للتوزيع لاستخدام عنوان URL الجديد وتلبية متطلبات البنية الأساسية.
هام
- يجب أن يكون اسم مضيف DNS قابلاً للحل لعناوين IP ويجب أن تكون عناوين IP المقابلة يمكن الوصول إليها. قد يتطلب هذا تكوينًا إضافيًا في حالة استخدام DNS خاص، أو VNET داخلي، أو متطلبات البنية الأساسية الأخرى.
الأمان
مجموعات تشفير TLS المتوفرة
عند التشغيل، استخدمت البوابة المستضافة ذاتيًا الإصدار v2.0 فقط مجموعة فرعية من مجموعات التشفير التي كان يستخدمها الإصدار v1.x. اعتبارا من الإصدار 2.0.4، قمنا بإعادة جميع مجموعات التشفير التي تدعمها v1.x.
يمكنك معرفة المزيد حول مجموعات التشفير المستخدمة في هذه المقالة أو استخدام الإصدار 2.1.1 للتحكم في مجموعات التشفير التي يجب استخدامها.
تلبية أدنى متطلبات الأمان الخاصة بك
أثناء بدء التشغيل، ستقوم البوابة المستضافة ذاتيًا بإعداد شهادات «المرجع المصدق» التي سيتم استخدامها. يتطلب هذا تشغيل حاوية البوابة بمعرف المستخدم 1001 على الأقل ولا يمكن استخدام نظام الملفات للقراءة فقط.
عند تكوين سياق أمان للحاوية في Kubernetes، يلزم على الأقل ما يلي:
securityContext:
runAsNonRoot: true
runAsUser: 1001
readOnlyRootFilesystem: false
ولكن، اعتبارًا من 2.0.3
يمكن تشغيل البوابة ذاتية الاستضافة باعتبارها غير جذر في Kubernetes مما يسمح للعملاء بتشغيل البوابة بأمان.
إليك مثالًا لسياق الأمان للبوابة ذاتية الاستضافة:
securityContext:
allowPrivilegeEscalation: false
runAsNonRoot: true
runAsUser: 1001 # This is a built-in user, but you can use any user ie 1000 as well
runAsGroup: 2000 # This is just an example
privileged: false
capabilities:
drop:
- all
تحذير
لا يتم دعم تشغيل البوابة ذاتية الاستضافة بنظام ملفات للقراءة فقط (readOnlyRootFilesystem: true
).
تقييم التأثير باستخدام Azure Advisor
من أجل تسهيل الترحيل، قدمنا توصيات Azure Advisor الجديدة:
- توصية استخدام البوابة المستضافة ذاتيًا v2 - تحدد مثيلات Azure API Management حيث تم تحديد استخدام البوابة المستضافة ذاتيًا v0.x أو v1.x.
- توصيةاستخدم Configuration API v2 للبوابات المستضافة ذاتيًا - تحدد مثيلات Azure API Management حيث تم تحديد استخدام Configuration API v1 للبوابة المستضافة ذاتيا.
نوصي العملاء بشدة باستخدام نظرة عامة على "جميع التوصيات" في Azure Advisor لتحديد ما إذا كان الترحيل مطلوبًا. استخدم خيارات التصفية لمعرفة ما إن كانت إحدى التوصيات المذكورة أعلاه موجودة.
استخدام Azure Resource Graph لتحديد مثيلات Azure API Management
يوفر لك استعلام Azure Resource Graph هذا قائمة بمثيلات Azure API Management المتأثرة:
AdvisorResources
| where type == 'microsoft.advisor/recommendations'
| where properties.impactedField == 'Microsoft.ApiManagement/service' and properties.category == 'OperationalExcellence'
| extend
recommendationTitle = properties.shortDescription.solution
| where recommendationTitle == 'Use self-hosted gateway v2' or recommendationTitle == 'Use Configuration API v2 for self-hosted gateways'
| extend
instanceName = properties.impactedValue,
recommendationImpact = properties.impact,
recommendationMetadata = properties.extendedProperties,
lastUpdated = properties.lastUpdated
| project tenantId, subscriptionId, resourceGroup, instanceName, recommendationTitle, recommendationImpact, recommendationMetadata, lastUpdated
az graph query -q "AdvisorResources | where type == 'microsoft.advisor/recommendations' | where properties.impactedField == 'Microsoft.ApiManagement/service' and properties.category == 'OperationalExcellence' | extend recommendationTitle = properties.shortDescription.solution | where recommendationTitle == 'Use self-hosted gateway v2' or recommendationTitle == 'Use Configuration API v2 for self-hosted gateways' | extend instanceName = properties.impactedValue, recommendationImpact = properties.impact, recommendationMetadata = properties.extendedProperties, lastUpdated = properties.lastUpdated | project tenantId, subscriptionId, resourceGroup, instanceName, recommendationTitle, recommendationImpact, lastUpdated"
القيود المعروفة
فيما يلي قائمة بالقيود المعروفة للبوابة المستضافة ذاتيًا v2:
- لا تدعم Configuration API v2 أسماء المجالات المخصصة