دليل ترحيل البوابة المستضافة ذاتيًا

ينطبق على: المطور | بريميوم

توضح هذه المقالة كيفية ترحيل عمليات نشر البوابة المستضافة ذاتيًا الموجودة إلى البوابة المستضافة ذاتيًا v2.

هام

سينتهي دعم الإصدار 0 من البوابة المستضافة ذاتيا ل Azure API Management وصور حاوية الإصدار 1 في 1 أكتوبر 2023، جنبا إلى جنب مع واجهة برمجة تطبيقات التكوين المقابلة لها الإصدار 1. تعرف على المزيد في وثائق الإهمال الخاصة بنا

ما الجديد؟

بينما نسعى جاهدين لتسهيل نشر البوابة ذاتية الاستضافة للعملاء، قدمنا واجهة برمجة تطبيقات تكوين جديدة تزيل التبعية على Azure Storage، ما لم تكن تستخدم مفتش واجهة برمجة التطبيقات أو الحصص النسبية.

تتيح «واجهة برمجة تطبيقات» التكوين الجديدة للعملاء اعتماد البوابة المستضافة ذاتيًا، ونشرها، وتشغيلها بسهولة أكبر في بنيتهم الأساسية الحالية.

لقد قدّمنا علامات صورة حاوية جديدة للسماح للعملاء باختيار أفضل طريقة لتجربة بوابتنا ونشرها في الإنتاج.

لمساعدة العملاء على تشغيل بوابتنا في الإنتاج، قمنا بتوسيع إرشادات الإنتاج لدينا لتغطية كيفية التحجيم التلقائي للبوابة، ونشرها للحصول على قابلية وصول عالية في مجموعة Kubernetes الخاصة بك.

تعرف على المزيد حول اتصال بوابتنا، ومتطلبات البنية الأساسية الجديدة، وماذا يحدث إذا فقدت الاتصال في هذه المقالة.

المتطلبات الأساسية

قبل أن تتمكن من الترحيل إلى البوابة المستضافة ذاتيًا v2، تحتاج إلى التأكد من أن البنية الأساسية الخاصة بك تستوفي بالمتطلبات.

الترحيل إلى البوابة المستضافة ذاتيًا v2

يتطلب الترحيل من البوابة المستضافة ذاتيًا الإصدار 2 بضع خطوات صغيرة يجب القيام بها:

  1. استخدام صورة الحاوية الجديدة
  2. استخدام واجهة برمجة تطبيقات التكوين الجديدة
  3. تلبية أدنى متطلبات الأمان الخاصة بك

صورة الحاوية

قم بتغيير علامة الصورة في البرامج النصية للتوزيع لاستخدامها 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 أسماء المجالات المخصصة

الخطوات التالية