تشخيص واكتشاف الاستثناءات المحظورة لـ Azure Cosmos DB وإصلاحها

ينطبق على: NoSQL

التعليمة البرمجية حالة HTTP 403 تمثل إكمال الطلب محظور.

طلبات حجب جدار الحماية

يمكن أن تأتي طلبات مستوى البيانات إلى Azure Cosmos DB عبر المسارات الثلاثة التالية.

  • الإنترنت العام (IPv4)
  • نقطة نهاية الخدمة
  • نقطة النهاية الخاصة

عند حظر طلب مستوى البيانات باستخدام 403 ممنوع، ستحدد رسالة الخطأ عبر أي من المسارات الثلاثة أعلاه جاء الطلب إلى Azure Cosmos DB.

  • Request originated from client IP {...} through public internet.
  • Request originated from client VNET through service endpoint.
  • Request originated from client VNET through private endpoint.

الحل

فهم المسار الذي من المتوقع أن يأتي الطلب إلى Azure Cosmos DB عبره.

  • إذا أظهرت رسالة الخطأ أن الطلب لم يأتي إلى Azure Cosmos DB عبر المسار المتوقع، فمن المحتمل أن تكون المشكلة مع الإعداد من جانب العميل. يرجى التحقق من إعداد العميل بعد الوثائق.
    • الإنترنت العام: تكوين جدار حماية IP في Azure Cosmos DB.
    • نقطة تقديم الخدمة: تكوين الوصول إلى Azure Cosmos DB من الشبكات الظاهرية (VNet). على سبيل المثال، إذا كنت تتوقع استخدام نقطة نهاية الخدمة ولكن الطلب جاء إلى Azure Cosmos DB عبر الإنترنت العام، فربما لم تمكن الشبكة الفرعية التي كان العميل يعمل فيها نقطة نهاية الخدمة إلى Azure Cosmos DB.
    • نقطة النهاية الخاصة: تكوين Azure Private Link لحساب Azure Cosmos DB. على سبيل المثال، إذا كنت تتوقع استخدام نقطة نهاية خاصة ولكن الطلب جاء إلى Azure Cosmos DB عبر الإنترنت العام، فربما لم يتم تكوين DNS على الجهاز الظاهري لحل نقطة نهاية الحساب إلى IP الخاص، لذلك انتقل من خلال عنوان IP العام للحساب بدلا من ذلك.
  • إذا جاء الطلب إلى Azure Cosmos DB عبر المسار المتوقع، فقد تم حظر الطلب لأنه لم يتم تكوين هوية الشبكة المصدر ليتم السماح بها للحساب. تحقق من إعدادات الحساب اعتمادا على المسار الذي جاء إليه الطلب إلى Azure Cosmos DB.
    • الإنترنت العام: تحقق من الوصول إلى الشبكة العامة للحساب وتكوينات تصفية نطاق IP.
    • نقطة تقديم الخدمة: تحقق من وصول الحساب إلى الشبكة العامة وتكوينات تصفية الشبكة الظاهرية VNET.
    • نقطة النهاية الخاصة: تحقق من تكوين نقطة النهاية الخاصة للحساب وتكوين نظام أسماء المجالات الخاص بالعميل. قد يرجع ذلك إلى الوصول إلى الحساب من نقطة نهاية خاصة تم إعدادها لحساب مختلف.

إذا قمت مؤخرا بتحديث تكوينات جدار حماية الحساب، فتذكر أن التغييرات قد تستغرق ما يصل إلى 15 دقيقة لتطبيقها.

مفتاح القسم يتجاوز سعة التخزين

في هذا السيناريو، من الشائع رؤية أخطاء مثل الواردة أدناه:

Response status code does not indicate success: Forbidden (403); Substatus: 1014
Partition key reached maximum size of {...} GB

الحل

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

غير مسموح بالعمليات غير المتعلقة بالبيانات

يحدث هذا السيناريو عند محاولة تنفيذ عمليات غير متعلقة بالبيانات باستخدام هويات Microsoft Entra. في هذا السيناريو، من الشائع رؤية أخطاء مثل الواردة أدناه:

Operation 'POST' on resource 'calls' is not allowed through Azure Cosmos DB endpoint
Forbidden (403); Substatus: 5300; The given request [PUT ...] cannot be authorized by AAD token in data plane.

الحل

تنفيذ العملية من خلال Azure Resource Manager أو مدخل Microsoft Azure أو واجهة سطر الأوامر في Azure أو Azure PowerShell. إذا كنت تستخدم Azure Functions Azure Cosmos DB Trigger ، فتأكد من CreateLeaseContainerIfNotExists عدم تعيين خاصية المشغل إلى true. يؤدي استخدام هويات Microsoft Entra إلى حظر أي عملية غير متعلقة بالبيانات، مثل إنشاء حاوية التأجير.

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