ملاحظة
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تسجيل الدخول أو تغيير الدلائل.
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تغيير الدلائل.
في هذا التشغيل السريع، يمكنك سحب التسليم باستخدام curl
أمر bash shell لنشر الأحداث وتلقيها والإقرار بها. استخدم أوامر Azure CLI لإنشاء موارد Azure Event Grid. هذه المقالة مناسبة لاختبار سريع لوظيفة تسليم السحب.
للحصول على نموذج التعليمات البرمجية التي تستخدم مستوى البيانات SDKs، راجع هذه الموارد:
- .NET: إرسال واستقبال الرسائل من موضوع مساحة اسم Azure Event Grid (.NET)
- Java: نشر الأحداث إلى مواضيع مساحة الاسم باستخدام Java
- Java: تلقي الأحداث باستخدام تسليم السحب مع Java
لمزيد من المعلومات حول نموذج تسليم السحب، راجع مفاهيم مساحة اسم Azure Event Gridوسحب التسليم باستخدام مقالات HTTP .
إذا لم يكن لديك حساب Azure، فأنشئ حساباً مجانياً قبل أن تبدأ.
المتطلبات
استخدم بيئة Bash في Azure Cloud Shell. لمزيد من المعلومات، راجع بدء استخدام Azure Cloud Shell.
إذا كنت تفضل تشغيل أوامر مرجع CLI محلياً قم بتثبيت CLI Azure. إذا كنت تعمل على نظام تشغيل Windows أو macOS، ففكر في تشغيل Azure CLI في حاوية Docker. لمزيد من المعلومات، راجع كيفية تشغيل Azure CLI في حاوية Docker.
إذا كنت تستخدم تثبيت محلي، يُرجى تسجيل الدخول إلى Azure CLI مستخدمًا أمر az login. لإنهاء عملية المصادقة، اتبع الخطوات المعروضة في جهازك. للحصول على خيارات تسجيل الدخول الأخرى، راجع المصادقة على Azure باستخدام Azure CLI.
عندما يُطلب منك، قم بتثبيت ملحق Azure CLI عند الاستخدام لأول مرة. لمزيد من المعلومات حول الملحقات، راجع استخدام الملحقات وإدارتها باستخدام Azure CLI.
يُرجى تشغيل إصدار az للوصول إلى الإصدار والمكتبات التابعة التي تم تثبيتها. للتحديث لآخر إصدار، يُرجى تشغيل تحديث az.
- تتطلب هذه المقالة الإصدار 2.0.70 أو أحدث من نسخة من Azure CLI. إذا كنت تستخدم Azure Cloud Shell، فإن أحدث إصدار مثبت بالفعل.
إنشاء مجموعة موارد
أنشئ إحدى مجموعات موارد Azure باستخدام الأمر "az group create". استخدم مجموعة الموارد هذه لاحتواء كافة الموارد التي تقوم بإنشائها في هذه المقالة.
الخطوات العامة لاستخدام Cloud Shell لتشغيل الأوامر هي:
- حدد Open Cloud Shell لمشاهدة نافذة Azure Cloud Shell في الجزء الأيمن.
- انسخ الأمر والصقه في نافذة Azure Cloud Shell.
- اضغط على ENTER لتشغيل الأمر.
قم بتعريف متغير للاحتفاظ باسم مجموعة موارد Azure. حدد اسما لمجموعة الموارد عن طريق استبدال
<your-resource-group-name>
بقيمتك.resource_group="<your-resource-group-name>"
قم بإنشاء مجموعة موارد. يمكنك تغيير الموقع إلى أي موقع Azure.
az group create --name $resource_group --location eastus
قم بتمكين مزود موارد Event Grid
إذا كانت هذه هي المرة الأولى التي تستخدم فيها Event Grid في اشتراك Azure، فقد تحتاج إلى تسجيل موفر موارد Event Grid. قم بتشغيل الأمر التالي لتسجيل الموفر :
az provider register --namespace Microsoft.EventGrid
قد يستغرق التسجيل بعض الوقت. للتحقق من الحالة، قم بتشغيل الأمر التالي:
az provider show --namespace Microsoft.EventGrid --query "registrationState"
عندما
registrationState
يكونRegistered
، كنت على استعداد للمتابعة.
إنشاء مساحة اسم
توفر مساحة اسم Event Grid نقطة نهاية معرفة من قبل المستخدم تقوم بنشر الأحداث إليها. ينشئ المثال التالي مساحة اسم في مجموعة الموارد الخاصة بك باستخدام Bash في Azure Cloud Shell. يجب أن يكون اسم مساحة الاسم فريدا لأنه جزء من إدخال نظام أسماء المجالات (DNS). يجب أن يفي اسم مساحة الاسم بالقواعد التالية:
- يجب أن يتراوح بين 3-50 حرفا.
- وينبغي أن تكون فريدة من نوعها إقليميا.
- الأحرف المسموح بها فقط هي: a-z و A-Z و 0-9 و -
- يجب ألا يبدأ ببادئات الكلمات الرئيسية المحجوزة مثل
Microsoft
أوSystem
أو .EventGrid
قم بتعريف متغير للاحتفاظ باسم مساحة اسم Event Grid. حدد اسما لمساحة الاسم عن طريق استبدال
<your-namespace-name>
بقيمتك.namespace="<your-namespace-name>"
أنشئ مساحة اسم . قد تحتاج إلى تغيير الموقع حيث تقوم بنشره.
az eventgrid namespace create --resource-group $resource_group --name $namespace --location eastus
إنشاء موضوع مساحة الاسم
إنشاء موضوع يحتوي على كافة الأحداث المنشورة إلى نقطة نهاية مساحة الاسم.
قم بتعريف متغير للاحتفاظ باسم موضوع مساحة الاسم. حدد اسما لموضوع مساحة الاسم عن طريق استبدال
<your-topic-name>
بقيمتك.topic="<your-topic-name>"
إنشاء موضوع مساحة الاسم:
az eventgrid namespace topic create --resource-group $resource_group --name $topic --namespace-name $namespace
إنشاء اشتراك حدث
قم بإنشاء اشتراك حدث لإعداد وضع التسليم الخاص به إلى قائمة الانتظار، والذي يدعم تسليم السحب. لمزيد من المعلومات حول جميع خيارات التكوين، راجع Azure Event Grid REST API.
قم بتعريف متغير للاحتفاظ باسم اشتراك حدث لموضوع مساحة الاسم. حدد اسما لاشتراك الحدث عن طريق استبدال
<your-event-subscription-name>
بقيمتك.event_subscription="<your-event-subscription-name>"
إنشاء اشتراك حدث لموضوع مساحة الاسم:
az eventgrid namespace topic event-subscription create --resource-group $resource_group --topic-name $topic --name $event_subscription --namespace-name $namespace --delivery-configuration "{deliveryMode:Queue,queue:{receiveLockDurationInSeconds:300,maxDeliveryCount:4,eventTimeToLive:P1D}}"
إرسال الأحداث إلى موضوعك
إرسال نموذج حدث إلى موضوع مساحة الاسم باتباع الخطوات الواردة في هذا القسم.
قائمة مفاتيح الوصول إلى مساحة الاسم
احصل على مفاتيح الوصول المقترنة بمساحة الاسم التي أنشأتها. تحتاج إلى واحد منهم للمصادقة عند نشر الأحداث. لسرد المفاتيح، احصل على معرف مورد مساحة الاسم الكامل. قم بتشغيل الأمر التالي:
namespace_resource_id=$(az eventgrid namespace show --resource-group $resource_group --name $namespace --query "id" --output tsv)
احصل على المفتاح الأول من مساحة الاسم:
key=$(az eventgrid namespace list-key --resource-group $resource_group --namespace-name $namespace --query "key1" --output tsv)
نَشر حدث
استرداد اسم مضيف مساحة الاسم. يمكنك استخدامه لإنشاء نقطة نهاية HTTP لمساحة الاسم التي يتم إرسال الأحداث إليها. كانت العمليات التالية متوفرة أولا مع إصدار
2023-06-01-preview
واجهة برمجة التطبيقات .publish_operation_uri="https://"$(az eventgrid namespace show -g $resource_group -n $namespace --query "topicsConfiguration.hostname" --output tsv)"/topics/"$topic:publish?api-version=2023-06-01-preview
إنشاء نموذج حدث متوافق مع CloudEvents :
event=' { "specversion": "1.0", "id": "'"$RANDOM"'", "type": "com.yourcompany.order.ordercreatedV2", "source" : "/mycontext", "subject": "orders/O-234595", "time": "'`date +%Y-%m-%dT%H:%M:%SZ`'", "datacontenttype" : "application/json", "data":{ "orderId": "O-234595", "url": "https://yourcompany.com/orders/o-234595"}} '
data
العنصر هو حمولة الحدث الخاص بك. يمكن لأي JSON تم تشكيله بشكل جيد أن يذهب في هذا المجال. تعرف الخصائص التي يمكن أن تدخل في حدث أيضا باسم سمات السياق. لمزيد من المعلومات، راجع CloudEvents.استخدم CURL لإرسال الحدث إلى الموضوع. CURL هي أداة مساعدة ترسل طلبات HTTP.
curl -X POST -H "Content-Type: application/cloudevents+json" -H "Authorization:SharedAccessKey $key" -d "$event" $publish_operation_uri
تلقي الحدث
تتلقى الأحداث من Event Grid باستخدام نقطة نهاية تشير إلى اشتراك حدث.
إنشاء نقطة النهاية عن طريق تشغيل الأمر التالي:
receive_operation_uri="https://"$(az eventgrid namespace show --resource-group $resource_group --name $namespace --query "topicsConfiguration.hostname" --output tsv)"/topics/"$topic/eventsubscriptions/$event_subscription:receive?api-version=2023-06-01-preview
إرسال طلب لاستهلاك الحدث:
curl -X POST -H "Content-Type: application/json" -H "Authorization:SharedAccessKey $key" $receive_operation_uri
الإقرار بحدث
بعد تلقي حدث، يمكنك تمرير هذا الحدث إلى تطبيقك للمعالجة. بعد معالجة الحدث بنجاح، لم تعد بحاجة إلى أن يكون هذا الحدث في اشتراك الحدث الخاص بك. لإرشاد Event Grid لحذف الحدث، فإنك تقر به باستخدام رمز التأمين المميز الذي حصلت عليه في استجابة عملية الاستلام.
في القسم السابق، تلقيت استجابة تتضمن كائنا
brokerProperties
بخاصيةlockToken
. انسخ قيمة رمز التأمين المميز وقم بتعيينها على متغير بيئة:lockToken="<paste-the-lock-token-here>"
أنشئ حمولة عملية الإقرار، والتي تحدد رمز التأمين المميز للحدث الذي تريد الاعتراف به.
acknowledge_request_payload=' { "lockTokens": ["'$lockToken'"]} '
تابع إنشاء السلسلة باستخدام URI لعملية الإقرار:
acknowledge_operation_uri="https://"$(az eventgrid namespace show -g $resource_group -n $namespace --query "topicsConfiguration.hostname" --output tsv)"/topics/"$topic/eventsubscriptions/$event_subscription:acknowledge?api-version=2023-06-01-preview
وأخيرا، أرسل طلبا للإقرار بالحدث الذي تم تلقيه:
curl -X POST -H "Content-Type: application/json" -H "Authorization:SharedAccessKey $key" -d "$acknowledge_request_payload" $acknowledge_operation_uri
إذا تم تنفيذ عملية الإقرار قبل انتهاء صلاحية رمز التأمين المميز (300 ثانية كما هو محدد عند إنشاء اشتراك الحدث)، يجب أن تشاهد استجابة مثل المثال التالي:
{"succeededLockTokens":["CiYKJDQ4NjY5MDEyLTk1OTAtNDdENS1BODdCLUYyMDczNTYxNjcyMxISChDZae43pMpE8J8ovYMSQBZS"],"failedLockTokens":[]}
الخطوة التالية
لمعرفة المزيد حول نموذج تسليم السحب، راجع تسليم السحب باستخدام HTTP.