مجموعة موارد Azure كمصدر شبكة الأحداث

توفر هذه المقالة خصائص ومخطط أحداث مجموعة الموارد. للحصول على مقدمة لمخططات الأحداث، راجع مخطط حدث Azure Event Grid.

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

يتم إنشاء أحداث الموارد لعمليات PUT وPATCH وPOST وDELETE التي يتم إرسالها إلى management.azure.com. لا تنشئ عمليات GET أحداثاً. العمليات المرسلة إلى مستوى البيانات (مثل myaccount.blob.core.windows.net) لا تنشئ أحداثاً. توفر أحداث الإجراء بيانات حدث لعمليات مثل سرد مفاتيح مورد.

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

لمعالجة الأحداث برمجياً، يمكنك فرز الأحداث من خلال النظر إلى القيمة operationName. على سبيل المثال، قد تقوم نقطة نهاية الحدث بمعالجة الأحداث فقط للعمليات التي تساوي Microsoft.Compute/virtualMachines/write أو Microsoft.Storage/storageAccounts/write.

موضوع الحدث هو معرف المورد للمورد الذي هو هدف العملية. لتصفية الأحداث لمورد، قم بتوفير معرف المورد هذا عند إنشاء اشتراك الحدث. للتصفية حسب نوع مورد، استخدم قيمة بالتنسيق التالي: /subscriptions/<subscription-id>/resourcegroups/<resource-group>/providers/Microsoft.Compute/virtualMachines

أنواع الأحداث المتاحة

تُرسِل مجموعات الموارد أحداث إدارة من إدارة موارد Azure، مثل عند إنشاء جهاز ظاهري أو حذف حساب تخزين.

نوع الحدث ‏‏الوصف
Microsoft.Resources.ResourceActionCancel يُرفع عند إلغاء الإجراء على المورد.
Microsoft.Resources.ResourceActionFailure يُرفع عند فشل الإجراء على المورد.
Microsoft.Resources.ResourceActionSuccess يُرفع عند نجاح الإجراء على المورد.
Microsoft.Resources.ResourceDeleteCancel يُرفع عند إلغاء عملية الحذف. يحدث هذا الحدث عند إلغاء نشر قالب.
Microsoft.Resources.ResourceDeleteFailure يُرفع عند فشل عملية الحذف.
Microsoft.Resources.ResourceDeleteSuccess يُرفع عند نجاح عملية الحذف.
Microsoft.Resources.ResourceWriteCancel يُرفع عند إلغاء عملية الإنشاء أو التحديث.
Microsoft.Resources.ResourceWriteFailure يُرفع عند فشل عملية الإنشاء أو التحديث.
Microsoft.Resources.ResourceWriteSuccess يُرفع عند نجاح عملية الإنشاء أو التحديث.

مثال حدث

يوضح المثال التالي المخطط لحدث ResourceWriteSuccess. يتم استخدام نفس المخطط لأحداث ResourceWriteFailure وResourceWriteCancel بقيم مختلفة لـ eventType.

[{
  "subject": "/subscriptions/{subscription-id}/resourcegroups/{resource-group}/providers/Microsoft.Storage/storageAccounts/{storage-name}",
  "source": "/subscriptions/{subscription-id}/resourceGroups/{resource-group}",
  "type": "Microsoft.Resources.ResourceWriteSuccess",
  "time": "2018-07-19T18:38:04.6117357Z",
  "id": "4db48cba-50a2-455a-93b4-de41a3b5b7f6",
  "data": {
    "authorization": {
      "scope": "/subscriptions/{subscription-id}/resourcegroups/{resource-group}/providers/Microsoft.Storage/storageAccounts/{storage-name}",
      "action": "Microsoft.Storage/storageAccounts/write",
      "evidence": {
        "role": "Subscription Admin"
      }
    },
    "claims": {
      "aud": "{audience-claim}",
      "iss": "{issuer-claim}",
      "iat": "{issued-at-claim}",
      "nbf": "{not-before-claim}",
      "exp": "{expiration-claim}",
      "_claim_names": "{\"groups\":\"src1\"}",
      "_claim_sources": "{\"src1\":{\"endpoint\":\"{URI}\"}}",
      "http://schemas.microsoft.com/claims/authnclassreference": "1",
      "aio": "{token}",
      "http://schemas.microsoft.com/claims/authnmethodsreferences": "rsa,mfa",
      "appid": "{ID}",
      "appidacr": "2",
      "http://schemas.microsoft.com/2012/01/devicecontext/claims/identifier": "{ID}",
      "e_exp": "{expiration}",
      "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/surname": "{last-name}",
      "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/givenname": "{first-name}",
      "ipaddr": "{IP-address}",
      "name": "{full-name}",
      "http://schemas.microsoft.com/identity/claims/objectidentifier": "{ID}",
      "onprem_sid": "{ID}",
      "puid": "{ID}",
      "http://schemas.microsoft.com/identity/claims/scope": "user_impersonation",
      "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameidentifier": "{ID}",
      "http://schemas.microsoft.com/identity/claims/tenantid": "{ID}",
      "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name": "{user-name}",
      "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/upn": "{user-name}",
      "uti": "{ID}",
      "ver": "1.0"
    },
    "correlationId": "{ID}",
    "resourceProvider": "Microsoft.Storage",
    "resourceUri": "/subscriptions/{subscription-id}/resourcegroups/{resource-group}/providers/Microsoft.Storage/storageAccounts/{storage-name}",
    "operationName": "Microsoft.Storage/storageAccounts/write",
    "status": "Succeeded",
    "subscriptionId": "{subscription-id}",
    "tenantId": "{tenant-id}"
  },

  "specversion": "1.0"
}]

يوضح المثال التالي المخطط لحدث ResourceWriteSuccess. يتم استخدام نفس المخطط لأحداث ResourceDeleteFailure وResourceDeleteCancel بقيم مختلفة لـ eventType.

[{
  "subject": "/subscriptions/{subscription-id}/resourceGroups/{resource-group}/providers/Microsoft.Storage/storageAccounts/{storage-name}",
  "source": "/subscriptions/{subscription-id}/resourceGroups/{resource-group}",
  "type": "Microsoft.Resources.ResourceDeleteSuccess",
  "time": "2018-07-19T19:24:12.763881Z",
  "id": "19a69642-1aad-4a96-a5ab-8d05494513ce",
  "data": {
    "authorization": {
      "scope": "/subscriptions/{subscription-id}/resourceGroups/{resource-group}/providers/Microsoft.Storage/storageAccounts/{storage-name}",
      "action": "Microsoft.Storage/storageAccounts/delete",
      "evidence": {
        "role": "Subscription Admin"
      }
    },
    "claims": {
      "aud": "{audience-claim}",
      "iss": "{issuer-claim}",
      "iat": "{issued-at-claim}",
      "nbf": "{not-before-claim}",
      "exp": "{expiration-claim}",
      "_claim_names": "{\"groups\":\"src1\"}",
      "_claim_sources": "{\"src1\":{\"endpoint\":\"{URI}\"}}",
      "http://schemas.microsoft.com/claims/authnclassreference": "1",
      "aio": "{token}",
      "http://schemas.microsoft.com/claims/authnmethodsreferences": "rsa,mfa",
      "appid": "{ID}",
      "appidacr": "2",
      "http://schemas.microsoft.com/2012/01/devicecontext/claims/identifier": "{ID}",
      "e_exp": "262800",
      "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/surname": "{last-name}",
      "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/givenname": "{first-name}",
      "ipaddr": "{IP-address}",
      "name": "{full-name}",
      "http://schemas.microsoft.com/identity/claims/objectidentifier": "{ID}",
      "onprem_sid": "{ID}",
      "puid": "{ID}",
      "http://schemas.microsoft.com/identity/claims/scope": "user_impersonation",
      "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameidentifier": "{ID}",
      "http://schemas.microsoft.com/identity/claims/tenantid": "{ID}",
      "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name": "{user-name}",
      "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/upn": "{user-name}",
      "uti": "{ID}",
      "ver": "1.0"
    },
    "correlationId": "{ID}",
    "httpRequest": {
      "clientRequestId": "{ID}",
      "clientIpAddress": "{IP-address}",
      "method": "DELETE",
      "url": "https://management.azure.com/subscriptions/{subscription-id}/resourceGroups/{resource-group}/providers/Microsoft.Storage/storageAccounts/{storage-name}?api-version=2018-02-01"
    },
    "resourceProvider": "Microsoft.Storage",
    "resourceUri": "/subscriptions/{subscription-id}/resourceGroups/{resource-group}/providers/Microsoft.Storage/storageAccounts/{storage-name}",
    "operationName": "Microsoft.Storage/storageAccounts/delete",
    "status": "Succeeded",
    "subscriptionId": "{subscription-id}",
    "tenantId": "{tenant-id}"
  },
  "specversion": "1.0"
}]

يوضح المثال التالي المخطط لحدث ResourceActionSuccess. يتم استخدام نفس المخطط لأحداث ResourceActionFailure وResourceActionCancel بقيم مختلفة لـ eventType.

[{   
  "subject": "/subscriptions/{subscription-id}/resourceGroups/{resource-group}/providers/Microsoft.EventHub/namespaces/{namespace}/AuthorizationRules/RootManageSharedAccessKey",
  "source": "/subscriptions/{subscription-id}/resourceGroups/{resource-group}",
  "type": "Microsoft.Resources.ResourceActionSuccess",
  "time": "2018-10-08T22:46:22.6022559Z",
  "id": "{ID}",
  "data": {
    "authorization": {
      "scope": "/subscriptions/{subscription-id}/resourceGroups/{resource-group}/providers/Microsoft.EventHub/namespaces/{namespace}/AuthorizationRules/RootManageSharedAccessKey",
      "action": "Microsoft.EventHub/namespaces/AuthorizationRules/listKeys/action",
      "evidence": {
        "role": "Contributor",
        "roleAssignmentScope": "/subscriptions/{subscription-id}",
        "roleAssignmentId": "{ID}",
        "roleDefinitionId": "{ID}",
        "principalId": "{ID}",
        "principalType": "ServicePrincipal"
      }     
    },
    "claims": {
      "aud": "{audience-claim}",
      "iss": "{issuer-claim}",
      "iat": "{issued-at-claim}",
      "nbf": "{not-before-claim}",
      "exp": "{expiration-claim}",
      "aio": "{token}",
      "appid": "{ID}",
      "appidacr": "2",
      "http://schemas.microsoft.com/identity/claims/identityprovider": "{URL}",
      "http://schemas.microsoft.com/identity/claims/objectidentifier": "{ID}",
      "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameidentifier": "{ID}",       "http://schemas.microsoft.com/identity/claims/tenantid": "{ID}",
      "uti": "{ID}",
      "ver": "1.0"
    },
    "correlationId": "{ID}",
    "httpRequest": {
      "clientRequestId": "{ID}",
      "clientIpAddress": "{IP-address}",
      "method": "POST",
      "url": "https://management.azure.com/subscriptions/{subscription-id}/resourceGroups/{resource-group}/providers/Microsoft.EventHub/namespaces/{namespace}/AuthorizationRules/RootManageSharedAccessKey/listKeys?api-version=2017-04-01"
    },
    "resourceProvider": "Microsoft.EventHub",
    "resourceUri": "/subscriptions/{subscription-id}/resourceGroups/{resource-group}/providers/Microsoft.EventHub/namespaces/{namespace}/AuthorizationRules/RootManageSharedAccessKey",
    "operationName": "Microsoft.EventHub/namespaces/AuthorizationRules/listKeys/action",
    "status": "Succeeded",
    "subscriptionId": "{subscription-id}",
    "tenantId": "{tenant-id}"
  },
  "specversion": "1.0"
}]

خصائص الحدث

ويحتوي الحدث على بيانات المستوى الأعلى التالية:

الخاصية نوع الوصف
source سلسلة مسار المورد الكامل إلى مصدر الحدث. هذا الحقل غير قابل للكتابة. توفر شبكة الأحداث هذه القيمة.
subject سلسلة مسار يحدده الناشر لموضوع الحدث.
type سلسلة أحد أنواع الأحداث المسجلة لمصدر الحدث الماثل.
time سلسلة الوقت الذي يتم إنشاء الحدث استناداً إلى وقت UTC الموفر.
id سلسلة المعرف الفريد للحدث.
data كائن بيانات حدث مجموعة الموارد.
specversion سلسلة إصدار مواصفات مخطط CloudEvents.

كائن البيانات له الخصائص التالية:

الخاصية نوع ‏‏الوصف
authorization كائن التفويض المطلوب للعملية.
claims كائن خصائص المطالبات. لمزيد من المعلومات، راجع مواصفات JWT.
correlationId سلسلة معرف عملية استكشاف الأخطاء وإصلاحها.
httpRequest كائن تفاصيل العملية. يتم تضمين هذا الكائن فقط عند تحديث مورد موجود أو حذف مورد.
resourceProvider سلسلة موفر الموارد للعملية.
resourceUri سلسلة URI المورد في العملية.
operationName سلسلة العملية التي تم اتخاذها.
status سلسلة وضع العملية.
subscriptionId سلسلة معرف الاشتراك للمورد.
tenantId سلسلة معرف المستأجر للمورد.

البرامج التعليمية والدروس المعرفية

المسمى الوظيفي ‏‏الوصف
مراقبة تغييرات الجهاز الظاهري باستخدام Azure Event Grid وLogic Apps يراقب تطبيق المنطق التغييرات التي تتم على جهاز ظاهري ويرسل رسائل إلكترونية حول هذه التغييرات.
Azure CLI: الاشتراك في أحداث لمجموعة موارد نموذج البرنامج النصي الذي يشترك في أحداث لمجموعة موارد. يرسل الأحداث إلى WebHook.
Azure CLI: اشترك في أحداث مجموعة موارد وعامل تصفية لمورد نموذج البرنامج النصي الذي يشترك في أحداث لمجموعة موارد وتصفية الأحداث لمورد واحد.
PowerShell: الاشتراك في أحداث لمجموعة موارد نموذج البرنامج النصي الذي يشترك في أحداث لمجموعة موارد. يرسل الأحداث إلى WebHook.
PowerShell: الاشتراك في أحداث لمجموعة موارد والتصفية حسب مورد نموذج البرنامج النصي الذي يشترك في أحداث لمجموعة موارد وتصفية الأحداث لمورد واحد.
قالب إدارة الموارد: اشتراك المورد الاشتراك في أحداث اشتراك Azure أو مجموعة موارد. يرسل الأحداث إلى WebHook.

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