تسليم الأحداث بهوية مُدارة

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

المتطلبات الأساسية

  1. قم بتعيين هوية معينة بواسطة النظام أو هوية معينة بواسطة المستخدم لموضوع نظام أو موضوع مخصص أو مجال.

  2. أضف الهوية إلى دور مناسب (على سبيل المثال، مرسل بيانات ناقل الخدمة) على الوجهة (على سبيل المثال، قائمة انتظار ناقل الخدمة). للحصول على خطوات تفصيلية، راجع إضافة هوية إلى أدوار Azure على الوجهات

    إشعار

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

إنشاء اشتراكات الأحداث التي تستخدم هوية

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

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

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

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

Screenshot that shows how to enable an identity when creating an event subscription for a Service Bus queue.

يمكنك أيضا تمكين استخدام هوية معينة بواسطة النظام لاستخدامها في الرسائل غير الهامة في علامة التبويب «ميزات إضافية».

Screenshot that shows how to enable a system-assigned identity for dead-lettering.

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

Screenshot that shows how to enable a system-assigned identity on an existing event subscription.

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

Screenshot that shows how to enable a user-assigned identity on an event subscription.

استخدام Azure CLI لإنشاء قائمة انتظار «ناقل الخدمة»

يمكنك التعرف في هذا القسم على كيفية استخدام CLI Azure لتمكين استخدام هوية معينة بواسطة النظام لتسليم الأحداث إلى قائمة انتظار "ناقل الخدمة". يجب أن تكون الهوية عضوا في دور مرسل بيانات ناقل خدمة Azure. يجب أن يكون عضوا أيضا في دور Storage Blob Data Contributor في حساب التخزين المستخدم في الرسائل غير الهامة.

تحديد المتغيرات

أولا، حدد قيم المتغيرات التالية لاستخدامها في الأمر CLI.

subid="<AZURE SUBSCRIPTION ID>"
rg = "<RESOURCE GROUP of EVENT GRID CUSTOM TOPIC>"
topicname = "<EVENT GRID TOPIC NAME>"

# get the service bus queue resource id
queueid=$(az servicebus queue show --namespace-name <SERVICE BUS NAMESPACE NAME> --name <QUEUE NAME> --resource-group <RESOURCE GROUP NAME> --query id --output tsv)
sb_esname = "<Specify a name for the event subscription>" 

إنشاء اشتراك الحدث باستخدام هوية مدارة للتسليم

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

az eventgrid event-subscription create  
    --source-resource-id /subscriptions/$subid/resourceGroups/$rg/providers/Microsoft.EventGrid/topics/$topicname
    --delivery-identity-endpoint-type servicebusqueue  
    --delivery-identity systemassigned 
    --delivery-identity-endpoint $queueid
    -n $sb_esname 

إنشاء اشتراك الحدث باستخدام هوية مدارة للتسليم وكتابة الأرقام بالحروف غير المستخدمة

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

storageid=$(az storage account show --name demoStorage --resource-group gridResourceGroup --query id --output tsv)
deadletterendpoint="$storageid/blobServices/default/containers/<BLOB CONTAINER NAME>"

az eventgrid event-subscription create  
    --source-resource-id /subscriptions/$subid/resourceGroups/$rg/providers/Microsoft.EventGrid/topics/$topicname 
    --delivery-identity-endpoint-type servicebusqueue
    --delivery-identity systemassigned 
    --delivery-identity-endpoint $queueid
    --deadletter-identity-endpoint $deadletterendpoint 
    --deadletter-identity systemassigned 
    -n $sb_esnameq 

استخدام Azure CLI - مراكز الأحداث

يمكنك التعرف في هذا القسم على كيفية استخدام Azure CLI لتمكين استخدام هوية معينة بواسطة النظام لتسليم الأحداث إلى مركز أحداث. يجب أن تكون الهوية عضوا في دور مرسل بيانات مراكز الأحداث Azure. يجب أن يكون عضوا أيضا في دور Storage Blob Data Contributor في حساب التخزين المستخدم في الرسائل غير الهامة.

تحديد المتغيرات

subid="<AZURE SUBSCRIPTION ID>"
rg = "<RESOURCE GROUP of EVENT GRID CUSTOM TOPIC>"
topicname = "<EVENT GRID CUSTOM TOPIC NAME>"

hubid=$(az eventhubs eventhub show --name <EVENT HUB NAME> --namespace-name <NAMESPACE NAME> --resource-group <RESOURCE GROUP NAME> --query id --output tsv)
eh_esname = "<SPECIFY EVENT SUBSCRIPTION NAME>" 

إنشاء اشتراك الحدث باستخدام هوية مدارة للتسليم

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

az eventgrid event-subscription create  
    --source-resource-id /subscriptions/$subid/resourceGroups/$rg/providers/Microsoft.EventGrid/topics/$topicname 
    --delivery-identity-endpoint-type eventhub 
    --delivery-identity systemassigned 
    --delivery-identity-endpoint $hubid
    -n $sbq_esname 

إنشاء اشتراك الحدث باستخدام هوية مدارة للتسليم + الرسائل غير الفعالة

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

storageid=$(az storage account show --name demoStorage --resource-group gridResourceGroup --query id --output tsv)
deadletterendpoint="$storageid/blobServices/default/containers/<BLOB CONTAINER NAME>"

az eventgrid event-subscription create
    --source-resource-id /subscriptions/$subid/resourceGroups/$rg/providers/Microsoft.EventGrid/topics/$topicname 
    --delivery-identity-endpoint-type servicebusqueue  
    --delivery-identity systemassigned 
    --delivery-identity-endpoint $hubid
    --deadletter-identity-endpoint $eh_deadletterendpoint
    --deadletter-identity systemassigned 
    -n $eh_esname 

استخدم Azure CLI - قائمة انتظار Azure Storage

يمكنك التعرف في هذا القسم على كيفية استخدام Azure CLI لتمكين استخدام هوية معينة بواسطة النظام لتسليم الأحداث إلى قائمة انتظار Azure Storage. يجب أن تكون الهوية عضوا في دور Storage Queue Data Message Sender على حساب التخزين. يجب أن يكون عضوا أيضا في دور Storage Blob Data Contributor في حساب التخزين المستخدم في الرسائل غير الهامة.

تحديد المتغيرات

subid="<AZURE SUBSCRIPTION ID>"
rg = "<RESOURCE GROUP of EVENT GRID CUSTOM TOPIC>"
topicname = "<EVENT GRID CUSTOM TOPIC NAME>"

# get the storage account resource id
storageid=$(az storage account show --name <STORAGE ACCOUNT NAME> --resource-group <RESOURCE GROUP NAME> --query id --output tsv)

# build the resource id for the queue
queueid="$storageid/queueservices/default/queues/<QUEUE NAME>" 

sa_esname = "<SPECIFY EVENT SUBSCRIPTION NAME>" 

إنشاء اشتراك الحدث باستخدام هوية مدارة للتسليم

az eventgrid event-subscription create 
    --source-resource-id /subscriptions/$subid/resourceGroups/$rg/providers/Microsoft.EventGrid/topics/$topicname 
    --delivery-identity-endpoint-type storagequeue  
    --delivery-identity systemassigned 
    --delivery-identity-endpoint $queueid
    -n $sa_esname 

إنشاء اشتراك الحدث باستخدام هوية مدارة للتسليم + الرسائل غير الفعالة

storageid=$(az storage account show --name demoStorage --resource-group gridResourceGroup --query id --output tsv)
deadletterendpoint="$storageid/blobServices/default/containers/<BLOB CONTAINER NAME>"

az eventgrid event-subscription create  
    --source-resource-id /subscriptions/$subid/resourceGroups/$rg/providers/Microsoft.EventGrid/topics/$topicname 
    --delivery-identity-endpoint-type storagequeue  
    --delivery-identity systemassigned 
    --delivery-identity-endpoint $queueid
    --deadletter-identity-endpoint $deadletterendpoint 
    --deadletter-identity systemassigned 
    -n $sa_esname 

نقاط النهاية الخاصة

لا يمكن حالياً تسليم الأحداث باستخدام نقاط النهاية الخاصة. أي أنه لا يوجد دعم إذا كانت لديك متطلبات صارمة لعزل الشبكة حيث يجب ألا تترك حركة مرور الأحداث التي تم تسليمها مساحة IP الخاصة.

ومع ذلك، إذا كانت متطلباتك تستدعي طريقة آمنة لإرسال الأحداث باستخدام قناة مشفرة وهوية معروفة للمرسل (في هذه الحالة، شبكة الأحداث) باستخدام مساحة IP عامة، يمكنك تسليم الأحداث إلى مراكز الأحداث أو ناقل الخدمة أو خدمة تخزين Azure باستخدام موضوع مخصص لشبكة أحداث Azure أو مجال بهوية مدارة كما هو موضح في هذه المقالة. ثم يمكنك استخدام ارتباط خاص تم تكوينه في دالات Azure أو خطاف الويب الذي تم توزيعه على شبكة ظاهرية لسحب الأحداث. راجع البرنامج التعليمي: الاتصال إلى نقاط النهاية الخاصة باستخدام Azure Functions.

ضمن هذا التكوين، تنتقل حركة المرور عبر IP/internet العام من شبكة الأحداث إلى مراكز الأحداث أو ناقل خدمة Azure أو خدمة تخزين Azure، ولكن يمكن تشفير القناة واستخدام هوية مدارة لشبكة الأحداث. إذا قمت بتكوين دوال Azure أو خطاف الويب الذي تم نشره على شبكة ظاهرية لاستخدام مراكز الأحداث أو ناقل خدمة Azure أو خدمة تخزين Azure عبر ارتباط خاص، سيظل هذا القسم من حركة المرور بوضوح داخل Azure.

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

للتعرف على الهويات المدارة، راجع ما هي الهويات المدارة لموارد Azure.