تسليم رسالة Event Grid وإعادة المحاولة

يوفر Event Grid تسليماً دائماً. يحاول تسليم كل رسالة مرة واحدة على الأقل لكل اشتراك مطابق على الفور. إذا كانت نقطة نهاية المشترك لا تقر باستلام حدث أو إذا كان هناك فشل، فإن Event Grid تعيد محاولة التسليم بناءً على جدول ثابت لإعادة المحاولة وسياسة إعادة المحاولة. بشكل افتراضي، تقدِّم وحدة Event Grid حدثاً واحداً في كل مرة للمشترك. ومع ذلك، فإن الحمولة عبارة عن مصفوفة ذات حدث واحد.

ملاحظة

لا تضمن Event Grid طلب تسليم الحدث، لذلك قد يتلقى المشتركون الطلب خارج نطاق الطلب.

جدول إعادة المحاولة

عندما تتلقى Event Grid خطأ لمحاولة تسليم حدث Event Grid تقرر ما إذا كانت تجب إعادة محاولة التسليم أو إهمال رسائل الحدث أو إسقاط الحدث استناداً إلى نوع الخطأ.

إذا كان الخطأ الذي تم إرجاعه بواسطة نقطة النهاية المشتركة خطأ متعلق بالتكوين لا يمكن إصلاحه عن طريق استخدام إعادة المحاولة (على سبيل المثال، إذا تم حذف نقطة النهاية)، فإن Event Grid إما ستقوم بتنفيذ إهمال رسائل الحدث أو إسقاط الحدث إذا لم يتم تكوين الإهمال.

يصف الجدول التالي أنواع نقاط النهاية والأخطاء التي لا تحدث إعادة المحاولة لها:

نوع نقطة النهاية رموز الخطأ
موارد Azure 400 طلب غير صالح، 413 طلب وحدة كبيراً جداً، 403 محظور، 404 لم يتم العثور عليه
إخطار على الويب 400 طلب غير صالح، 413 طلب وحدة كبير جدا، 403 محظور، 404 غير موجود، 401 غير مصرح به

ملاحظة

إذا لم يتم تكوين إهمال الرسائل لنقطة نهاية، فسيتم إسقاط الأحداث عند حدوث الأخطاء أعلاه. فكر في تكوين إهمال الرسائل إذا كنت لا تريد إسقاط هذه الأنواع من الأحداث. سيتم إسقاط رسائل الأحداث غير المُستخدمة عندما لا يتم العثور على وجهة الرسائل غير المُستخدمة.

إذا لم يكن الخطأ الذي تم إرجاعه بواسطة نقطة النهاية المشتركة موجوداً ضمن القائمة أعلاه، فإن Event Grid ستقوم بإعادة المحاولة باستخدام السياسات المُوضحة أدناه:

تنتظر Event Grid ما يصل إلى 30 ثانية للرد بعد تسليم رسالة. بعد 30 ثانية، إذا لم تستجب نقطة النهاية، فإن الرسالة ستكون في قائمة الانتظار لإعادة المحاولة. تستخدم Event Grid سياسة إعادة محاولة التراجع الأسي لتسليم الحدث. ستقوم Event Grid بإعادة محاولة التسليم وفقًا للجدول الزمني التالي على أساس أفضل الجهود:

  • 10 ثوان
  • 30 seconds
  • دقيقة واحدة
  • 5 دقائق
  • 10 دقائق
  • 30 دقيقة
  • ساعة
  • 3 ساعات
  • 6 ساعات
  • كل 12 ساعة حتى 24 ساعة

إذا استجابت نقطة النهاية خلال 3 دقائق، ستحاول Event Grid حذف الحدث من قائمة انتظار إعادة المحاولة على أساس أفضل جهد ولكن قد تستمر في استلام التكرارات.

تضيف Event Grid بعض العشوائية بقدر بسيطة إلى كل خطوات إعادة المحاولة وقد تنتهز الفرصة لتتخطى بعض محاولات الإعادة إذا كانت نقطة النهاية غير صحية باستمرار، أو معطلة لفترة طويلة، أو يبدو أنها غير مستقرة.

نهج إعادة المحاولة

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

  • الحد الأقصى لعدد المحاولات - يجب أن تكون القيمة عددا صحيحا يقع بين 1 و30. القيمة الافتراضية هي 30.
  • Event time-to-live (TTL) - يجب أن تكون القيمة عدداً صحيحاً بين 1 و1440. القيمة الافتراضية هي 1440 دقيقة

للحصول على نموذج لأمر CLI و PowerShell لتكوين هذه الإعدادات، راجع تعيين سياسة إعادة المحاولة.

إرسال النتائج في دفعات

يكون الوضع الافتراضي لـ Event Grid هو لإرسال كل حدث على حدة للمشتركين. يتلقى المشترك صفيف يحتوي على حدث واحد. يمكنك تكوين Event Grid لتجميع الأحداث على دفعات للتسليم لتحسين أداء HTTP في سيناريوهات معدل النقل المرتفعة. يتم إيقاف تشغيل الإرسال في دفعات افتراضيًا ويمكن تشغيله لكل اشتراك.

سياسة الإرسال في دفعات

التسليم في دفعات له إعدادان:

  • الحد الأقصى للأحداث لكل دفعة - يشير إلى الحد الأقصى للتسليم لعدد الأحداث التي ستقدمها شبكة الأحداث لكل دفعة. لن يتم تخطي هذا الرقم أبدا، ولكن قد يتم تسليم أحداث أقل إذا لم تتوفر أحداث أخرى خلال وقت النشر. لا تؤخر Event Grid الأحداث لإنشاء دفعة إذا كان عدد الأحداث المتوفرة أقل. يجب أن تقع القيمة بين 1 و 5000.
  • حجم الدفعة المفضل بالكيلو بايت - الحد الأقصى المستهدف لحجم الدفعة بالكيلو بايت. على نفس نمط الأحداث القصوى، قد يكون حجم الدفعة أصغر إذا لم تتوفر المزيد من الأحداث في وقت النشر. من الممكن أن تكون الدفعة أكبر من حجم الدفعة المفضل إذا كان حدث واحد أكبر من الحجم المفضل. على سبيل المثال، إذا كان الحجم المفضل يبلغ 4 كيلوبايت وتم إدخال حدث بحجم 10 كيلوبايت إلى Event Grid، فإنه سيتم تسليم الحدث الذي يبلغ حجمه 10 كيلوبايت في الدفعة الخاصة به بدلا من إسقاطه.

تسليم في دفعات في تكوين على أساس الاشتراك لكل حدث عبر المدخل أو CLI أو PowerShell أو SDKs.

سلوك الإرسال في دفعات

  • الكل أو لا شيء

    تعمل Event Grid باستخدام دلالة الكل أو لا شيء. لا يدعم النجاح الجزئي لتسليم الدُفعات. يجب أن يكون المشتركون حريصين على طلب أكبر عدد ممكن من الأحداث لكل دفعة بقدر ما يمكنهم التعامل معه بشكل معقول في 60 ثانية.

  • دفعة متفائلة

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

  • الإعداد الافتراضي هو OFF

    بشكل افتراضي، تضيف Event Grid حدثًا واحدًا فقط لكل طلب تسليم. تتمثل طريقة تشغيل التجميع في تعيين أحد الإعدادات المذكورة سابقًا في المقالة في حالة اشتراك JSON.

  • القيم الافتراضية

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

مدخل Azure:

إعدادات التسليم في دفعات

Azure CLI

عند إنشاء اشتراك لحدث، قم باستخدام المعلمات التالية:

  • الحد الأقصى للأحداث لكل دفعة - الحد الأقصى لعدد الأحداث في كل دفعة. يجب أن يكون رقمًا يتراوح بين 1 و 5000.
  • حجم الدفعة المفضل بالكيلو بايت - الحد المفضل لحجم الدفعة بالكيلو بايت. يجب أن يكون رقمًا يتراوح بين 1 و 1024.
storageid=$(az storage account show --name <storage_account_name> --resource-group <resource_group_name> --query id --output tsv)
endpoint=https://$sitename.azurewebsites.net/api/updates

az eventgrid event-subscription create \
  --resource-id $storageid \
  --name <event_subscription_name> \
  --endpoint $endpoint \
  --max-events-per-batch 1000 \
  --preferred-batch-size-in-kilobytes 512

لمزيد من المعلومات حول استخدام Azure CLI مع Event Grid، راجع أحداث تخزين المسار إلى نقطة نهاية الويب باستخدام Azure CLI.

تسليم متأخر

إذا تعرضت نقطة النهاية إلى عجز في التسليم، ستبدأ Event Grid غب تأخير التسليم وإعادة محاولة الأحداث إلى نقطة النهاية تلك. على سبيل المثال، إذا فشلت الأحداث العشرة الأولى المنشورة إلى نقطة نهاية، ستفترض Event Grid أن نقطة النهاية تواجه مشكلات وستؤخر جميع عمليات الإعادة اللاحقة والتسليمات الجديدة لبعض الوقت - في بعض الحالات تصل إلى عدة ساعات.

يتمثل الغرض الوظيفي من تأخر التسليم في حماية نقاط النهاية غير السليمة ونظام Event Grid. بدون التراجع وتأخير التسليم إلى نقاط النهاية غير السليمة، يمكن أن تغطي سياسة إعادة المحاولة وقدرات وحدة التخزين في Event Grid بسهولة على النظام.

أحداث الرسائل المهملة

عندما لا تتمكن Event Grid من تسليم حدث خلال فترة زمنية معينة أو بعد محاولة تسليم الحدث لعدد معين من المرات، يمكنها إرسال الحدث الذي لم يتم تسليمه إلى حساب تخزين. تُعرف هذه العملية بالرسائل المهملة. تقوم Event Grid بإهمال حدث عند استيفاء أحد الشروط التالية.

  • عدم تسليم الحدث خلال فترة بقاء الحدث.
  • تجاوز الحد الأقصى لعدد محاولات تسليم الحدث.

إذا تم استيفاء أي من الشروط، يتم إسقاط الحدث أو إهماله. بشكل افتراضي، لا تشغل Event Grid إهمال الرسائل. لتمكين هذه الخاصية، يجب تحديد حساب تخزين للاحتفاظ بأحداث لم يتم تسليمها عند إنشاء اشتراك الحدث. سحب الأحداث من حساب التخزين هذا لحل عمليات التسليم.

ترسل Event Grid حدث إلى موقع الإهمال عندما يستنفذ كافة محاولات إعادة المحاولة الخاصة به. إذا تلقت Event Grid رمز استجابة 400 (طلب غير صالح) أو 413 (طلب عنصر كبير جدا)، فإنها ستقوم بجدولة الحدث فورا ليتم إهماله. تشير رموز الاستجابة هذه إلى أن تسليم الحدث لن ينجح أبدا.

لن يتم التحقق من انتهاء الصلاحية وقت بقاء الحدث إلا خلال محاولة التسليم المجدولة التالية. لذلك، حتى إذا انتهت صلاحية وقت بقاء الحدث قبل محاولة التسليم المجدولة التالية، فلن يتم التحقق من انتهاء صلاحية الحدث إلا في وقت التسليم التالي، ثم سيتم إهماله.

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

قبل تعيين موقع مهمل، يجب أن يكون لديك حساب تخزين مع حاوية. يمكنك توفير نقطة النهاية لهذه الحاوية عند إنشاء اشتراك الحدث. تكون نقطة النهاية بالتنسيق التالي: /subscriptions/<subscription-id>/resourceGroups/<resource-group-name>/providers/Microsoft.Storage/storageAccounts/<storage-name>/blobServices/default/containers/<container-name>

قد تحتاج إلى إعلامك عندما يتم إرسال حدث إلى موقع الإهمال. لاستخدام Event Grid للاستجابة للأحداث التي لم يتم تسليمها، قم بإنشاء اشتراك حدث لتخزين كائن ثنائي كبير الحجم المهمل. في كل مرة يتلقى تخزين الكائن الثنائي كبير الحجم المهمل حدث لم يتم تسليمها، فإن Event Grid ستقوم بإعلام المعالج الخاص بك. يستجيب المعالج للإجراءات التي ترغب في اتخاذها للتوفيق بين الأحداث التي لم يتم تسليمها. للحصول على مثال لإعداد موقع مهمل وسياسة إعادة المحاولة، راجع سياسات "الإهمال" و "إعادة المحاولة".

ملاحظة

إذا قمت بتمكين الهوية المدارة للرسائل غير المستخدمة، فستحتاج إلى إضافة الهوية المدارة إلى دور التحكم في الوصول استنادًا إلى الدور المناسب (RBAC) على حساب Azure Storage الذي سيحتفظ بالأحداث غير المستخدمة. لمزيد من المعلومات، راجع الوجهات المدعومة وأدوار Azure.

تنسيقات حدث التسليم

يتيح لك هذا المقطع أمثلة للأحداث والأحداث المهملة بتنسيقات مخطط تسليم متنوعة (مخطط Event Grid ومخطط CloudEvents 1.0 ومخطط مخصص). لمزيد من المعلومات حول هذه التنسيقات، راجع مخطط Event Grid ومقالات مخطط Cloud Events 1.0.

⁧⁩مخطط "شبكة الأحداث"⁧⁩

الحدث

{
    "id": "93902694-901e-008f-6f95-7153a806873c",
    "eventTime": "2020-08-13T17:18:13.1647262Z",
    "eventType": "Microsoft.Storage.BlobCreated",
    "dataVersion": "",
    "metadataVersion": "1",
    "topic": "/subscriptions/000000000-0000-0000-0000-00000000000000/resourceGroups/rgwithoutpolicy/providers/Microsoft.Storage/storageAccounts/myegteststgfoo",
    "subject": "/blobServices/default/containers/deadletter/blobs/myBlobFile.txt",    
    "data": {
        "api": "PutBlob",
        "clientRequestId": "c0d879ad-88c8-4bbe-8774-d65888dc2038",
        "requestId": "93902694-901e-008f-6f95-7153a8000000",
        "eTag": "0x8D83FACDC0C3402",
        "contentType": "text/plain",
        "contentLength": 0,
        "blobType": "BlockBlob",
        "url": "https://myegteststgfoo.blob.core.windows.net/deadletter/myBlobFile.txt",
        "sequencer": "00000000000000000000000000015508000000000005101c",
        "storageDiagnostics": { "batchId": "cfb32f79-3006-0010-0095-711faa000000" }
    }
}

أحداث الرسائل المهملة

{
    "id": "93902694-901e-008f-6f95-7153a806873c",
    "eventTime": "2020-08-13T17:18:13.1647262Z",
    "eventType": "Microsoft.Storage.BlobCreated",
    "dataVersion": "",
    "metadataVersion": "1",
    "topic": "/subscriptions/0000000000-0000-0000-0000-000000000000000/resourceGroups/rgwithoutpolicy/providers/Microsoft.Storage/storageAccounts/myegteststgfoo",
    "subject": "/blobServices/default/containers/deadletter/blobs/myBlobFile.txt",    
    "data": {
        "api": "PutBlob",
        "clientRequestId": "c0d879ad-88c8-4bbe-8774-d65888dc2038",
        "requestId": "93902694-901e-008f-6f95-7153a8000000",
        "eTag": "0x8D83FACDC0C3402",
        "contentType": "text/plain",
        "contentLength": 0,
        "blobType": "BlockBlob",
        "url": "https://myegteststgfoo.blob.core.windows.net/deadletter/myBlobFile.txt",
        "sequencer": "00000000000000000000000000015508000000000005101c",
        "storageDiagnostics": { "batchId": "cfb32f79-3006-0010-0095-711faa000000" }
    },

    "deadLetterReason": "MaxDeliveryAttemptsExceeded",
    "deliveryAttempts": 1,
    "lastDeliveryOutcome": "NotFound",
    "publishTime": "2020-08-13T17:18:14.0265758Z",
    "lastDeliveryAttemptTime": "2020-08-13T17:18:14.0465788Z" 
}

فيما يلي القيم المحتملة لـ lastDeliveryOutcome وأوصافها.

LastDeliveryOutcome الوصف
NotFound لم يتم العثور على مورد الوجهة.
⁧⁩مُعطل⁧⁩ قامت الوجهة بتعطيل تلقي الأحداث. ينطبق على ناقل خدمة Azure ومراكز أحداث Azure.
كامل تجاوز الحد الأقصى لعدد العمليات المسموح بها على الوجهة. ينطبق على ناقل خدمة Azure ومراكز أحداث Azure.
غير مصرح به أرجعت الوجهة رمز استجابة غير مُصرح به.
BadRequest أرجعت الوجهة رمز استجابة طلب غير صالح.
⁧⁩TimedOut⁧⁩ انتهت مهلة عملية التسليم.
مشغول خادم الوجهة مشغول.
PayloadTooLarge تجاوز حجم الرسالة الحد الأقصى من الحجم المسموح به حسب الوجهة. ينطبق على ناقل خدمة Azure ومراكز أحداث Azure.
الاختبار يتم وضع الوجهة تحت الاختبار بواسطة Event Grid. لا تتم محاولة التسليم أثناء الاختبار.
ملغي تم إلغاء عملية التسليم.
متوقفة تم إيقاف التسليم بواسطة Event Grid بعد فاصل زمني.
SocketError حدث خطأ في اتصال الشبكة أثناء التسليم.
ResolutionError فشل تحليل DNS لنقطة نهاية الوجهة.
تسليم تسليم الأحداث إلى الوجهة.
SessionQueueNotSupported تتم محاولة تسليم الحدث دون معرف جلسة العمل على كيان تم تمكين دعم جلسة العمل فيه. ينطبق على وجهة كيان ناقل خدمة Azure.
محظور التسليم محظور بواسطة نقطة نهاية الوجهة (قد يكون بسبب جدران حماية بروتوكول الإنترنت أو قيود أخرى)
InvalidAzureFunctionDestination دالة Azure للوجهة غير صالحة. ربما لأنها لا تحتوي على نوع EventGridTrigger.

LastDeliveryOutcome: الاختبار

يتم وضع اشتراك الحدث تحت الاختبار لمدة بواسطة Event Grid إذا بدأ تسليم الحدث إلى تلك الوجهة في الفشل. يختلف وقت الاختبار لمختلف الأخطاء التي يتم إرجاعها بواسطة نقطة نهاية الوجهة. إذا كان اشتراك الحدث قيد الاختبار، فقد يتم حذف الأحداث أو إسقاط رسائلها دون حتى محاولة التسليم اعتماداً على رمز الخطأ الذي بسببه وُضع اشتراك الحدث قيد الاختبار.

خطأ مدة الاختبار
مشغول 10 ثوان
NotFound 5 دقائق
SocketError 30 seconds
ResolutionError 5 دقائق
⁧⁩مُعطل⁧⁩ 5 دقائق
كامل 5 دقائق
⁧⁩TimedOut⁧⁩ 10 ثوان
غير مصرح به 5 دقائق
محظور 5 دقائق
InvalidAzureFunctionDestination 10 دقائق

ملاحظة

تستخدم Event Grid مدة الاختبار لإدارة التسليم بشكل أفضل وقد تتغير المدة في المستقبل.

مخطط CloudEvents 1.0

الحدث

{
    "id": "caee971c-3ca0-4254-8f99-1395b394588e",
    "source": "mysource",
    "dataversion": "1.0",
    "subject": "mySubject",
    "type": "fooEventType",
    "datacontenttype": "application/json",
    "data": {
        "prop1": "value1",
        "prop2": 5
    }
}

أحداث الرسائل المهملة

{
    "id": "caee971c-3ca0-4254-8f99-1395b394588e",
    "source": "mysource",
    "dataversion": "1.0",
    "subject": "mySubject",
    "type": "fooEventType",
    "datacontenttype": "application/json",
    "data": {
        "prop1": "value1",
        "prop2": 5
    },

    "deadletterreason": "MaxDeliveryAttemptsExceeded",
    "deliveryattempts": 1,
    "lastdeliveryoutcome": "NotFound",
    "publishtime": "2020-08-13T21:21:36.4018726Z",
}

مخطط مخصص

الحدث

{
    "prop1": "my property",
    "prop2": 5,
    "myEventType": "fooEventType"
}

أحداث الرسائل المهملة

{
    "id": "8bc07e6f-0885-4729-90e4-7c3f052bd754",
    "eventTime": "2020-08-13T18:11:29.4121391Z",
    "eventType": "myEventType",
    "dataVersion": "1.0",
    "metadataVersion": "1",
    "topic": "/subscriptions/00000000000-0000-0000-0000-000000000000000/resourceGroups/rgwithoutpolicy/providers/Microsoft.EventGrid/topics/myCustomSchemaTopic",
    "subject": "subjectDefault",
  
    "deadLetterReason": "MaxDeliveryAttemptsExceeded",
    "deliveryAttempts": 1,
    "lastDeliveryOutcome": "NotFound",
    "publishTime": "2020-08-13T18:11:29.4121391Z",
    "lastDeliveryAttemptTime": "2020-08-13T18:11:29.4277644Z",
  
    "data": {
        "prop1": "my property",
        "prop2": 5,
        "myEventType": "fooEventType"
    }
}

حالة تسليم الرسالة

تستخدم Event Grid رموز استجابة HTTP للإقرار باستلام الأحداث.

رموز النجاح

تعتبر Event Grid رموز استجابة HTTP التالية فقط كعمليات تسليم ناجحة. وتعتبر جميع رموز الحالة الأخرى عمليات تسليم فاشلة، وستعاد محاولة تسليمها أو شطبها حسب الاقتضاء. عندما تتلقى Event Grid رمز حالة ناجحًا، فإنها تعتبر التسليم مكتملاً.

  • 200 جيد
  • 201 تم الإنشاء
  • 202 مقبولة
  • 203 معلومات غير مخوّل بها
  • 204 لا يوجد محتوى

رموز الفشل

تعتبر كافة الرموز الأخرى غير الموجودة في المجموعة أعلاه (200-204) إخفاقات وسيتم إعادة محاولتها (إذا لزم الأمر). لدى بعضها سياسات إعادة محاولة محددة مرتبطة بها وسنشرحها أدناه، وتتبع جميع السياسات الأخرى نموذج التراجع الأسي القياسي. من المهم أن تضع في اعتبارك أنه نظرا للطبيعة المتوازية للغاية لبنية Event Grid، فإن سلوك إعادة المحاولة غير حتمي.

كود الحالة سلوك إعادة المحاولة
400 طلب غير صالح لم يتم إعادة المحاولة
401 غير مصرح به سيتم إعادة المحاولة بعد 5 دقائق أو أكثر لنقاط نهاية موارد Azure
403 محظور لم يتم إعادة المحاولة
404 لم يتم العثور سيتم إعادة المحاولة بعد 5 دقائق أو أكثر لنقاط نهاية موارد Azure
408 انتهي وقت الطلب إعادة المحاولة بعد دقيقتين أو أكثر
413 كيان الطلب كبير جدًا لم يتم إعادة المحاولة
503 الخدمة غير متوفرة أعد المحاولة بعد 30 ثانية أو أكثر
كل الآخرين أعد المحاولة بعد 10 ثوانٍ أو أكثر

خصائص التسليم المخصصة

تتيح لك اشتراكات الأحداث إعداد عناوين HTTP المضمنة في الأحداث التي تم تسليمها. تسمح لك هذه الإمكانية بتعيين عناوين مخصصة مطلوبة من قبل وجهة. يمكنك إعداد ما يصل إلى 10 عناوين عند إنشاء اشتراك حدث. يجب ألا تكون قيمة العنوان أكبر من 4096 بايت (4K). يمكنك تعيين عناوين مخصصة على الأحداث التي يتم تسليمها إلى الوجهات التالية:

  • خطافات الويب
  • موضوعات ناقل خدمة Azure وقوائم الانتظار
  • مراكز أحداث Azure
  • Relay Hybrid Connections

لمزيد من المعلومات، راجع خصائص التسليم المخصص .

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