قوائم انتظار حافلة الخدمة والمواضيع كمعالجات أحداث لأحداث Azure Event Grid

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

قوائم انتظار ناقل خدمة Microsoft Azure

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

استخدام مدخل Azure

في مدخل Microsoft Azure، أثناء إنشاء اشتراك حدث، حدد قائمة انتظار ناقل الخدمة كنوع نقطة النهاية ثم انقر فوق تحديد نقطة نهاية لاختيار قائمة انتظار ناقل خدمة Microsoft Azure.

Screenshot showing the configuration of a Service Bus queue handler.

إشعار

لا يتم دعم قوائم الانتظار الممكّنة للجلسة كمعالجات أحداث لأحداث Azure Event Grid

استخدام Azure CLI

az eventgrid event-subscription create استخدم الأمر مع --endpoint-type تعيين إلى servicebusqueue وتعيين --endpoint إلى /subscriptions/{AZURE SUBSCRIPTION}/resourceGroups/<RESOURCE GROUP NAME>/providers/Microsoft.ServiceBus/namespaces/<NAMESPACE NAME>/queues/<QUEUE NAME>. إليك مثال:

az eventgrid event-subscription create \
    --name <my-event-subscription> \
    --source-resource-id /subscriptions/{SubID}/resourceGroups/{RG}/providers/Microsoft.EventGrid/topics/topic1 \
    --endpoint-type servicebusqueue \
    --endpoint /subscriptions/{SubID}/resourceGroups/TestRG/providers/Microsoft.ServiceBus/namespaces/ns1/queues/queue1

يمكنك أيضا استخدام az eventgrid topic event-subscription الأمر للمواضيع المخصصة والأمر az eventgrid system-topic event-subscription لمواضيع النظام والأمر az eventgrid partner topic event-subscription create لمواضيع الشريك.

استخدام Azure PowerShell

استخدم الأمر New-AzEventGridSubscription مع -EndpointType تعيين إلى servicebusqueue وتعيين -Endpoint إلى /subscriptions/{AZURE SUBSCRIPTION}/resourceGroups/<RESOURCE GROUP NAME>/providers/Microsoft.ServiceBus/namespaces/<NAMESPACE NAME>/queues/<QUEUE NAME>. إليك مثال:

New-AzEventGridSubscription -ResourceGroup MyResourceGroup `
            -TopicName Topic1 `
            -EndpointType servicebusqueue `
            -Endpoint /subscriptions/{SubID}/resourceGroups/TestRG/providers/Microsoft.ServiceBus/namespaces/ns1/queues/queue1 `
            -EventSubscriptionName EventSubscription1

يمكنك أيضا استخدام New-AzEventGridSystemTopicEventSubscription الأمر لمواضيع النظام والأمر New-AzEventGridPartnerTopicEventSubscription لمواضيع الشريك.

مواضيع ناقل الخدمة

يمكنك توجيه الأحداث في Event Grid مباشرة إلى مواضيع ناقل خدمة Microsoft Azure لسيناريوهات المراسلة الخاصة بالأوامر والتحكم.

استخدام مدخل Azure

في مدخل Microsoft Azure، أثناء إنشاء اشتراك حدث، حدد موضوع ناقل الخدمة كنوع نقطة النهاية ثم انقر فوق تحديد نقطة نهاية لاختيار موضوع ناقل خدمة Microsoft Azure.

Screenshot showing the configuration of a Service Bus topic handler.

استخدام Azure CLI

az eventgrid event-subscription create استخدم الأمر مع --endpoint-type تعيين إلى servicebustopic وتعيين --endpoint إلى /subscriptions/{AZURE SUBSCRIPTION}/resourceGroups/<RESOURCE GROUP NAME>/providers/Microsoft.ServiceBus/namespaces/<NAMESPACE NAME>/topics/<TOPIC NAME>. إليك مثال:

az eventgrid event-subscription create \
    --name <my-event-subscription> \
    --source-resource-id /subscriptions/{SubID}/resourceGroups/{RG}/providers/Microsoft.EventGrid/topics/topic1 \
    --endpoint-type servicebustopic \
    --endpoint /subscriptions/{SubID}/resourceGroups/TestRG/providers/Microsoft.ServiceBus/namespaces/ns1/topics/topic1

يمكنك أيضا استخدام az eventgrid topic event-subscription الأمر للمواضيع المخصصة والأمر az eventgrid system-topic event-subscription لمواضيع النظام والأمر az eventgrid partner topic event-subscription create لمواضيع الشريك.

استخدام Azure PowerShell

استخدم الأمر New-AzEventGridSubscription مع -EndpointType تعيين إلى servicebustopic وتعيين -Endpoint إلى /subscriptions/{AZURE SUBSCRIPTION}/resourceGroups/<RESOURCE GROUP NAME>/providers/Microsoft.ServiceBus/namespaces/<NAMESPACE NAME>/topics/<TOPIC NAME>. إليك مثال:

New-AzEventGridSubscription -ResourceGroup MyResourceGroup `
            -TopicName Topic1 `
            -EndpointType servicebustopic `
            -Endpoint /subscriptions/{SubID}/resourceGroups/TestRG/providers/Microsoft.ServiceBus/namespaces/ns1/topics/topic1 `
            -EventSubscriptionName EventSubscription1

يمكنك أيضا استخدام New-AzEventGridSystemTopicEventSubscription الأمر لمواضيع النظام والأمر New-AzEventGridPartnerTopicEventSubscription لمواضيع الشريك.

عناوين الرسائل

هذه هي الخصائص التي تتلقاها في عناوين الرسائل:

اسم الخاصية ‏‏الوصف
اسم اشتراك aeg اسم اشتراك الحدث.
aeg التسليم -العد عدد المحاولات التي تمت للحدث.
aeg-الحدث نوع

نوع الحدث.

يمكن أن تكون إحدى القيم التالية:

  • SubscriptionValidation
  • الإعلام
  • SubscriptionDeletion
aeg-metadata-version

إصدار بيانات التعريف للحدث.

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

aeg- إصدار البيانات

إصدار بيانات الحدث.

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

aeg-إخراج-الحدث-معرف معرف حدث شبكة الأحداث.

عند إرسال حدث إلى قائمة انتظار أو موضوع ناقل خدمة Microsoft Azure كرسالة بوساطة، messageid فإن الرسالة الوسيطة هي معرف نظام داخلي.

يتم الاحتفاظ بمعرف النظام الداخلي للرسالة عبر إعادة تسليم الحدث بحيث يمكنك تجنب عمليات التسليم المكررة عن طريق تشغيل الكشف عن التكرارات على كيان ناقل الخدمة. نوصي بتمكين مدة الكشف عن التكرارات في كيان Service Bus لتكون إما مدة البقاء (TTL) للحدث أو أقصى مدة لإعادة المحاولة، أيهما أطول.

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

تتيح لك اشتراكات الأحداث إعداد عناوين HTTP المضمنة في الأحداث التي تم تسليمها. تسمح لك هذه الإمكانية بتعيين عناوين مخصصة تتطلبها الوجهة. يمكنك تعيين عناوين مخصصة للأحداث التي يتم تسليمها إلى قوائم انتظار وموضوعات Azure Service Bus.

يدعم Azure Service Bus استخدام خصائص الرسالة التالية عند إرسال رسائل فردية.

اسم الرأس نوع العنوان
MessageId ديناميكي
PartitionKey ثابت أو متحرك
SessionId ثابت أو متحرك
CorrelationId ثابت أو متحرك
Label ثابت أو متحرك
ReplyTo ثابت أو متحرك
ReplyToSessionId ثابت أو متحرك
To ثابت أو متحرك
ViaPartitionKey ثابت أو متحرك

إشعار

  • القيمة الافتراضية MessageId هو المعرف الداخلي لحدث شبكة الأحداث. يمكنك تجاوزها. على سبيل المثال، data.field
  • يمكنك فقط تعيين إما SessionIdأو MessageId.

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

أمثلة REST (لـ PUT)

قائمة انتظار حافلة الخدمة

{
    "properties": 
    {
        "destination": 
        {
			"endpointType": "ServiceBusQueue",
            "properties": 
            {
				"resourceId": "/subscriptions/<AZURE SUBSCRIPTION ID>/resourceGroups/<RESOURCE GROUP NAME>/providers/Microsoft.ServiceBus/namespaces/<SERVICE BUS NAMESPACE NAME>/queues/<SERVICE BUS QUEUE NAME>"
			}
		},
		"eventDeliverySchema": "EventGridSchema"
	}
}

قائمة انتظار حافلة الخدمة - التسليم بهوية مُدارة

{
	"properties": {
        "deliveryWithResourceIdentity": 
        {
            "identity": 
            {
				"type": "SystemAssigned"
			},
            "destination": 
            {
				"endpointType": "ServiceBusQueue",
                "properties": 
                {
					"resourceId": "/subscriptions/<AZURE SUBSCRIPTION ID>/resourceGroups/<RESOURCE GROUP NAME>/providers/Microsoft.ServiceBus/namespaces/<SERVICE BUS NAMESPACE NAME>/queues/<SERVICE BUS QUEUE NAME>"
				}
			}
		},
		"eventDeliverySchema": "EventGridSchema"
	}
}

موضوع ناقل الخدمة

{
    "properties": 
    {
        "destination": 
        {
			"endpointType": "ServiceBusTopic",
            "properties": 
            {
				"resourceId": "/subscriptions/<AZURE SUBSCRIPTION ID>/resourceGroups/<RESOURCE GROUP NAME>/providers/Microsoft.ServiceBus/namespaces/<SERVICE BUS NAMESPACE NAME>/topics/<SERVICE BUS TOPIC NAME>"
			}
		},
		"eventDeliverySchema": "EventGridSchema"
	}
}

موضوع ناقل الخدمة - التسليم بهوية مُدارة

{
    "properties": 
    {
        "deliveryWithResourceIdentity": 
        {
            "identity": 
            {
				"type": "SystemAssigned"
			},
            "destination": 
            {
				"endpointType": "ServiceBusTopic",
                "properties": 
                {
					"resourceId": "/subscriptions/<AZURE SUBSCRIPTION ID>/resourceGroups/<RESOURCE GROUP NAME>/providers/Microsoft.ServiceBus/namespaces/<SERVICE BUS NAMESPACE NAME>/topics/<SERVICE BUS TOPIC NAME>"
				}
			}
		},
		"eventDeliverySchema": "EventGridSchema"
	}
}

إشعار

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

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

راجع مقالة معالجات الأحداث للحصول على قائمة بمعالجات الأحداث المدعومة.