تشخيص واكتشاف الاستثناءات المحظورة لـ 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 من الشبكات الظاهرية. ضع في اعتبارك ما إذا كنت تتوقع استخدام نقطة نهاية الخدمة ولكن الطلب جاء إلى Azure Cosmos DB من الإنترنت العام. قد يشير هذا الموقف إلى أن الشبكة الفرعية التي كان العميل يعمل فيها لم تمكن نقطة نهاية الخدمة إلى Azure Cosmos DB.
    • نقطة النهاية الخاصة: تكوين Azure Private Link لحساب Azure Cosmos DB. ضع في اعتبارك أيضا ما إذا كنت تتوقع استخدام نقطة نهاية خاصة ولكن الطلب جاء إلى Azure Cosmos DB من الإنترنت العام. قد يشير هذا الموقف إلى أنه لم يتم تكوين خادم اسم المجال (DNS) على الجهاز الظاهري لحل نقطة نهاية الحساب إلى الخاص بدلا من عنوان IP العام.
  • إذا جاء الطلب إلى Azure Cosmos DB عبر المسار المتوقع، فقد تم حظر الطلب لأنه لم يتم تكوين هوية الشبكة المصدر للحساب. تحقق من إعدادات الحساب اعتمادا على المسار الذي جاء إليه الطلب إلى Azure Cosmos DB.
    • الإنترنت العام: تحقق من الوصول إلى الشبكة العامة للحساب وتكوينات تصفية نطاق IP.
    • نقطة نهاية الخدمة: تحقق من الوصول إلى الشبكة العامة للحساب وتكوينات تصفية الشبكة الظاهرية.
    • نقطة النهاية الخاصة: تحقق من تكوين نقطة النهاية الخاصة للحساب وتكوين نظام أسماء المجالات الخاص بالعميل. قد تكون هذه المشكلة بسبب الوصول إلى حساب من نقطة نهاية خاصة تم إعدادها لحساب مختلف.

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

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

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

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

حل

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

عمليات Nondata غير مسموح بها

يحدث هذا السيناريو عند محاولة تنفيذ عمليات nondata باستخدام هويات 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 إلى حظر أي عملية غير بيانات، مثل إنشاء حاوية التأجير.