المرجع: إعدادات تكوين حاوية البوابة المستضافة ذاتيا
ينطبق على: المطور | قسط
توفر هذه المقالة مرجعا للإعدادات المطلوبة والاختيارية المستخدمة لتكوين حاوية البوابة المستضافة ذاتيا لإدارة واجهة برمجة التطبيقات.
لمعرفة المزيد حول إرشادات إنتاج (Kubernetes)، نوصي بقراءة هذه المقالة.
هام
ينطبق هذا المرجع فقط على البوابة المستضافة ذاتيًا v2. يتم توفير الحد الأدنى من الإصدارات لتوفر الإعدادات.
تكامل واجهة برمجة تطبيقات التكوين
يتم استخدام واجهة برمجة تطبيقات التكوين بواسطة البوابة المستضافة ذاتيا للاتصال ب Azure API Management للحصول على أحدث تكوين وإرسال المقاييس، عند تمكينها.
فيما يلي نظرة عامة على جميع خيارات التكوين:
Name | الوصف | مطلوبة | افتراضي | التوافر |
---|---|---|---|---|
gateway.name | معرف مورد البوابة المستضاف ذاتيا. | نعم، عند استخدام مصادقة Microsoft Entra | غير متوفر | الإصدار 2.3+ |
config.service.endpoint | نقطة نهاية التكوين في APIM للبوابة المستضافة ذاتيًا. ابحث عن هذه القيمة في مدخل Microsoft Azure ضمن Gateways>Deployment. | نعم | غير متوفر | الإصدار 2.0+ |
config.service.auth | يحدد كيفية مصادقة البوابة المستضافة ذاتيا إلى واجهة برمجة تطبيقات التكوين. يتم حاليا دعم الرمز المميز للبوابة ومصادقة Microsoft Entra. | نعم | غير متوفر | الإصدار 2.0+ |
config.service.auth.azureAd.tenantId | معرف مستأجر Microsoft Entra. | نعم، عند استخدام مصادقة Microsoft Entra | غير متوفر | الإصدار 2.3+ |
config.service.auth.azureAd.clientId | معرف العميل لتطبيق Microsoft Entra للمصادقة باستخدام (المعروف أيضا باسم معرف التطبيق). | نعم، عند استخدام مصادقة Microsoft Entra | غير متوفر | الإصدار 2.3+ |
config.service.auth.azureAd.clientSecret | سر تطبيق Microsoft Entra للمصادقة عليه. | نعم، عند استخدام مصادقة Microsoft Entra (ما لم يتم تحديد الشهادة) | غير متوفر | الإصدار 2.3+ |
config.service.auth.azureAd.certificatePath | مسار الشهادة للمصادقة مع لتطبيق Microsoft Entra. | نعم، عند استخدام مصادقة Microsoft Entra (ما لم يتم تحديد السر) | غير متوفر | الإصدار 2.3+ |
config.service.auth.azureAd.authority | عنوان URL المرجع لمعرف Microsoft Entra. | لا | https://login.microsoftonline.com |
الإصدار 2.3+ |
config.service.auth.tokenAudience | جمهور الرمز المميز المستخدم لمصادقة Microsoft Entra | لا | https://azure-api.net/configuration |
الإصدار 2.3+ |
config.service.endpoint.disableCertificateValidation | يحدد ما إذا كان يجب على البوابة المستضافة ذاتيا التحقق من صحة شهادة من جانب الخادم لواجهة برمجة تطبيقات التكوين. يوصى باستخدام التحقق من صحة الشهادة، وتعطيلها فقط لأغراض الاختبار وبحذر لأنها يمكن أن تؤدي إلى مخاطر أمنية. | لا | false |
الإصدار 2.0+ |
config.service.integration.timeout | يحدد المهلة للتفاعل مع واجهة برمجة تطبيقات التكوين. | لا | 00:01:40 |
الإصدار 2.3.5+ |
توفر البوابة المستضافة ذاتيا دعما لعدد قليل من خيارات المصادقة للتكامل مع واجهة برمجة تطبيقات التكوين التي يمكن تعريفها باستخدام config.service.auth
.
يساعدك هذا التوجيه على توفير المعلومات المطلوبة لتحديد كيفية المصادقة:
- بالنسبة للمصادقة المستندة إلى الرمز المميز للبوابة، حدد رمز وصول (مفتاح المصادقة) للبوابة المستضافة ذاتيا في مدخل Azure ضمن نشر البوابات>.
- بالنسبة للمصادقة المستندة إلى معرف Microsoft Entra، حدد
azureAdApp
إعدادات المصادقة الإضافيةconfig.service.auth.azureAd
وقدمها.
اكتشاف ومزامنة عبر المثيلات
Name | الوصف | مطلوبة | افتراضي | التوافر |
---|---|---|---|---|
neighborhood.host | اسم DNS المستخدم لحل جميع مثيلات نشر بوابة مستضافة ذاتيا للمزامنة عبر المثيلات. في Kubernetes، يمكن تحقيق ذلك باستخدام خدمة بدون رأس. | لا | غير متاح | الإصدار 2.0+ |
neighborhood.heartbeat.port | منفذ UDP المستخدم لمثيلات نشر بوابة مستضافة ذاتيا لإرسال رسالة كشف أخطاء الاتصال إلى مثيلات أخرى. | لا | 4291 | الإصدار 2.0+ |
policy.rate-limit.sync.port | منفذ UDP المستخدم لمثيلات البوابة المستضافة ذاتيا لمزامنة تحديد المعدل عبر مثيلات متعددة. | لا | 4290 | الإصدار 2.0+ |
HTTP
Name | الوصف | مطلوبة | افتراضي | التوافر |
---|---|---|---|---|
net.server.http.forwarded.proto.enabled | القدرة على تكريم X-Forwarded-Proto العنوان لتحديد مخطط لحل ما يسمى مسار واجهة برمجة التطبيقات (http/https فقط). |
لا | true | الإصدار 2.5+ |
تكامل Kubernetes
Kubernetes Ingress
هام
يعد دعم Kubernetes Ingress تجريبيا حاليا ولا يغطيه دعم Azure. تعرف على المزيد حول GitHub.
Name | الوصف | مطلوبة | افتراضي | التوافر |
---|---|---|---|---|
k8s.ingress.enabled | تمكين تكامل دخول Kubernetes. | لا | false |
الإصدار 1.2+ |
k8s.ingress.namespace | مساحة اسم Kubernetes لمشاهدة موارد دخول Kubernetes. | لا | default |
الإصدار 1.2+ |
k8s.ingress.dns.suffix | لاحقة DNS لإنشاء اسم مضيف DNS للخدمات لإرسال الطلبات إليها. | لا | svc.cluster.local |
الإصدار 2.4+ |
k8s.ingress.config.path | المسار إلى تكوين Kubernetes (Kubeconfig). | لا | غير متاح | الإصدار 2.4+ |
المقاييس
Name | الوصف | مطلوبة | افتراضي | التوافر |
---|---|---|---|---|
القياس عن بعد. metrics.local | تمكين جمع المقاييس المحلية من خلال StatsD. القيمة هي أحد الخيارات التالية: none ، . statsd |
لا | none |
الإصدار 2.0+ |
القياس عن بعد.metrics.local.statsd.endpoint | نقطة نهاية StatsD. | نعم، إذا telemetry.metrics.local تمت المجموعة إلى statsd ؛ وإلا لا. |
غير متوفر | الإصدار 2.0+ |
القياس عن بعد.metrics.local.statsd.sampling | يحدد مقاييس معدل أخذ العينات. يجب أن تكون القيمة بين 0 و1، على سبيل المثال، 0.5. | لا | غير متاح | الإصدار 2.0+ |
القياس عن بعد.metrics.local.statsd.tag-format | تنسيق وضع العلامات على مصدر StatsD. القيمة هي أحد الخيارات التالية: ibrato ، ، dogStatsD . influxDB |
لا | غير متاح | الإصدار 2.0+ |
telemetry.metrics.cloud | الإشارة إلى ما إذا كان يجب تمكين مقاييس الإرسال إلى Azure Monitor أم لا. | لا | true |
الإصدار 2.0+ |
observability.opentelemetry.enabled | الإشارة إلى ما إذا كان يجب تمكين تنبيهات المقاييس إلى مجمع OpenTelemetry على Kubernetes أم لا. | لا | false |
الإصدار 2.0+ |
observability.opentelemetry.collector.uri | URI لجامع OpenTelemetry لإرسال المقاييس إليه. | نعم، إذا observability.opentelemetry.enabled تمت المجموعة إلى true ؛ وإلا لا. |
غير متوفر | الإصدار 2.0+ |
observability.opentelemetry.system-metrics.enabled | تمكين إرسال مقاييس النظام إلى مجمع OpenTelemetry مثل وحدة المعالجة المركزية والذاكرة وجمع البيانات المهملة وما إلى ذلك. | لا | false |
الإصدار 2.3+ |
observability.opentelemetry.histogram.buckets | مستودعات المدرج التكراري التي يجب الإبلاغ فيها عن مقاييس OpenTelemetry. نموذج: "x,y,z,...". | لا | {5,10,25,50,100,250,500,1000,2500,5000,10000.##}" | الإصدار 2.0+ |
السجلات
Name | الوصف | مطلوبة | افتراضي | التوافر |
---|---|---|---|---|
القياس عن بعد .logs.std | تمكين التسجيل إلى دفق قياسي. القيمة هي أحد الخيارات التالية: none ، ، text . json |
لا | text |
الإصدار 2.0+ |
telemetry.logs.std.level | يحدد مستوى السجل للسجلات المرسلة إلى الدفق القياسي. القيمة هي أحد الخيارات التالية: all أو debug أو info warn error .fatal |
لا | info |
الإصدار 2.0+ |
telemetry.logs.std.color | الإشارة إلى ما إذا كان يجب استخدام السجلات الملونة في الدفق القياسي أم لا. | لا | true |
الإصدار 2.0+ |
القياس عن بعد .logs.local | تمكين التسجيل المحلي. القيمة هي أحد الخيارات التالية: none ، auto ، localsyslog ، ، rfc5424 ، journal json |
لا | auto |
الإصدار 2.0+ |
telemetry.logs.local.localsyslog.endpoint | يحدد نقطة نهاية السجل المحلي. | نعم إذا telemetry.logs.local تمت المجموعة إلى localsyslog ؛ وإلا لا. راجع وثائق syslog المحلية لمزيد من التفاصيل حول التكوين. |
غير متوفر | الإصدار 2.0+ |
telemetry.logs.local.localsyslog.facility | يحدد التعليمات البرمجية لمرفق localsyslog، على سبيل المثال، 7 . |
لا | غير متاح | الإصدار 2.0+ |
telemetry.logs.local.rfc5424.endpoint | نقطة نهاية rfc5424. | نعم إذا telemetry.logs.local تمت المجموعة إلى rfc5424 ؛ وإلا لا. |
غير متوفر | الإصدار 2.0+ |
telemetry.logs.local.rfc5424.facility | رمز المرفق لكل rfc5424، على سبيل المثال، 7 |
لا | غير متاح | الإصدار 2.0+ |
telemetry.logs.local.journal.endpoint | نقطة نهاية دفتر اليومية. | نعم إذا telemetry.logs.local تمت المجموعة إلى journal ؛ وإلا لا. |
غير متوفر | الإصدار 2.0+ |
telemetry.logs.local.json.endpoint | يحدد نقطة نهاية UDP التي تقبل بيانات JSON: مسار الملف أو منفذ IP: أو اسم المضيف: المنفذ. | نعم إذا telemetry.logs.local تمت المجموعة إلى json ؛ وإلا لا. |
127.0.0.1:8888 | الإصدار 2.0+ |
الأمان
الشهادات والشفرات
Name | الوصف | مطلوبة | افتراضي | التوافر |
---|---|---|---|---|
certificates.local.ca.enabled | الإشارة إلى ما إذا كانت البوابة المستضافة ذاتيا يجب أن تستخدم شهادات CA المحلية التي يتم تحميلها أم لا. مطلوب لتشغيل البوابة المستضافة ذاتيا كجذر أو مع معرف المستخدم 1001. | لا | false |
الإصدار 2.0+ |
net.server.tls.ciphers.allowed-suites | قائمة مفصولة بفاصلة من الشفرات لاستخدامها لاتصال TLS بين عميل واجهة برمجة التطبيقات والبوابة المستضافة ذاتيًا. | لا | TLS_AES_256_GCM_SHA384,TLS_CHACHA20_POLY1305_SHA256,TLS_AES_128_GCM_SHA256,TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384,TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384,TLS_DHE_RSA_WITH_AES_256_GCM_SHA384,TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256,TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256,TLS_DHE_RSA_WITH_CHACHA20_POLY1305_SHA256,TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256,TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256,TLS_DHE_RSA_WITH_AES_128_GCM_SHA256,TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384,TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384,TLS_DHE_RSA_WITH_AES_256_CBC_SHA256,TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256,TLS_DHE_RSA_WITH_AES_128_CBC_SHA256,TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA,TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA,TLS_DHE_RSA_WITH_AES_256_CBC_SHA,TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA,TLS_DHE_RSA_WITH_AES_128_CBC_SHA,TLS_RSA_WITH_AES_256_GCM_SHA384,TLS_RSA_WITH_AES_128_GCM_SHA256,TLS_RSA_WITH_AES_256_CBC_SHA256,TLS_RSA_WITH_AES_128_CBC_SHA256,TLS_RSA_WITH_AES_256_CBC_SHA,TLS_RSA_WITH_AES_128_CBC_SHA |
الإصدار 2.0+ |
net.client.tls.ciphers.allowed-suites | قائمة مفصولة بفاصلة من الشفرات لاستخدامها لاتصال TLS بين البوابة المستضافة ذاتيًا والواجهة الخلفية. | لا | TLS_AES_256_GCM_SHA384,TLS_CHACHA20_POLY1305_SHA256,TLS_AES_128_GCM_SHA256,TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384,TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384,TLS_DHE_RSA_WITH_AES_256_GCM_SHA384,TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256,TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256,TLS_DHE_RSA_WITH_CHACHA20_POLY1305_SHA256,TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256,TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256,TLS_DHE_RSA_WITH_AES_128_GCM_SHA256,TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384,TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384,TLS_DHE_RSA_WITH_AES_256_CBC_SHA256,TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256,TLS_DHE_RSA_WITH_AES_128_CBC_SHA256,TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA,TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA,TLS_DHE_RSA_WITH_AES_256_CBC_SHA,TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA,TLS_DHE_RSA_WITH_AES_128_CBC_SHA,TLS_RSA_WITH_AES_256_GCM_SHA384,TLS_RSA_WITH_AES_128_GCM_SHA256,TLS_RSA_WITH_AES_256_CBC_SHA256,TLS_RSA_WITH_AES_128_CBC_SHA256,TLS_RSA_WITH_AES_256_CBC_SHA,TLS_RSA_WITH_AES_128_CBC_SHA |
الإصدار 2.0+ |
security.certificate-revocation.validation.enabled | يوفر إمكانية تشغيل/إيقاف تشغيل التحقق من صحة قائمة إبطال الشهادات | لا | false |
الإصدار 2.3.6+ |
TLS
Name | الوصف | مطلوبة | افتراضي | التوافر |
---|---|---|---|---|
Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Backend.Protocols.Tls13 | الإشارة إلى ما إذا كان مسموحا ب TLS 1.3 أم لا نحو الخلفية. على غرار إدارة شفرات البروتوكول في البوابة المدارة. | لا | true |
الإصدار 2.0+ |
Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Backend.Protocols.Tls12 | الإشارة إلى ما إذا كان مسموحا ب TLS 1.2 أم لا نحو الخلفية. على غرار إدارة شفرات البروتوكول في البوابة المدارة. | لا | true |
الإصدار 2.0+ |
Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Backend.Protocols.Tls11 | الإشارة إلى ما إذا كان مسموحا ب TLS 1.1 أم لا نحو الخلفية. على غرار إدارة شفرات البروتوكول في البوابة المدارة. | لا | false |
الإصدار 2.0+ |
Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Backend.Protocols.Tls10 | الإشارة إلى ما إذا كان مسموحا ب TLS 1.0 أم لا نحو الخلفية. على غرار إدارة شفرات البروتوكول في البوابة المدارة. | لا | false |
الإصدار 2.0+ |
Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Backend.Protocols.Ssl30 | الإشارة إلى ما إذا كان مسموحا ب SSL 3.0 أم لا نحو الخلفية. على غرار إدارة شفرات البروتوكول في البوابة المدارة. | لا | false |
الإصدار 2.0+ |
السحابات ذات السيادة
فيما يلي نظرة عامة على الإعدادات التي تحتاج إلى تكوين لتكون قادرة على العمل مع السحب السيادية:
الاسم | عامة | Azure الصين: | US Government |
---|---|---|---|
config.service.auth.tokenAudience | https://azure-api.net/configuration (افتراضي) |
https://azure-api.cn/configuration |
https://azure-api.us/configuration |
logs.applicationinsights.endpoint | https://dc.services.visualstudio.com/v2/track (افتراضي) |
https://dc.applicationinsights.azure.cn/v2/track |
https://dc.applicationinsights.us/v2/track |
كيفية تكوين الإعدادات
ملف Kubernetes YAML
عند نشر البوابة المستضافة ذاتيًا إلى Kubernetes باستخدام ملف YAML، قم بتكوين الإعدادات كأزواج قيمة الاسم في data
عنصر ConfigMap للبوابة. على سبيل المثال:
apiVersion: v1
kind: ConfigMap
metadata:
name: contoso-gateway-environment
data:
config.service.endpoint: "contoso.configuration.azure-api.net"
telemetry.logs.std: "text"
telemetry.logs.local.localsyslog.endpoint: "/dev/log"
telemetry.logs.local.localsyslog.facility: "7"
[...]
مخطط بياني Helm
عند استخدام Helm لنشر البوابة المستضافة ذاتيًا إلى Kubernetes، قم بتمرير إعدادات تكوين المخطط كمعلمات إلى helm install
الأمر. على سبيل المثال:
helm install azure-api-management-gateway \
--set gateway.configuration.uri='contoso.configuration.azure-api.net' \
--set gateway.auth.key='GatewayKey contosogw&xxxxxxxxxxxxxx...' \
--set secret.createSecret=false \
--set secret.existingSecretName=`mysecret` \
azure-apim-gateway/azure-api-management-gateway
الخطوات التالية
- تعرف على المزيد حول إرشادات تشغيل البوابة المستضافة ذاتياً على Kubernetes في الإنتاج
- يستخدم البوابة المستضافة ذاتياً مع Docker
- يستخدم البوابة المستضافة ذاتياً مع Docker
- يستخدم البوابة المستضافة ذاتيًا مع Azure Arc- لتمكين نظام مجموعة Kubernetes
- تمكين دعم Dapr على البوابة المستضافة ذاتيا
- تعرف على المزيد حول خيارات التكوين لملحق Azure Arc