اشتراك Azure كمصدر شبكة الأحداث

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

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

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

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

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

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

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

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

نوع الحدث ‏‏الوصف
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}",
  "topic": "/subscriptions/{subscription-id}",
  "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}",
  "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}",
  "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 Automation مع Event Grid وMicrosoft Teams إنشاء جهاز ظاهري يرسل حدثاً. يشغّل الحدث دفتر تشغيل Automation الذي يضع علامة على الجهاز الظاهري ثم يشغّل رسالة يتم إرسالها إلى قناة Microsoft Teams.
كيفية: الاشتراك في الأحداث من خلال المدخل استخدم المدخل للاشتراك في الأحداث الخاصة باشتراك Azure.
Azure CLI: الاشتراك في الأحداث لاشتراك Azure نموذج البرنامج النصي الذي ينشئ اشتراك شبكة الأحداث إلى اشتراك Azure ويرسل الأحداث إلى WebHook.
PowerShell: الاشتراك في الأحداث لاشتراك Azure نموذج البرنامج النصي الذي ينشئ اشتراك شبكة الأحداث إلى اشتراك Azure ويرسل الأحداث إلى WebHook.

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