Группа ресурсов Azure как источник "Сетки событий Azure"

В этой статье описаны свойства и схема для событий группы ресурсов. Общие сведения о схемах событий см. в статье Схема событий службы "Сетка событий Azure".

Подписки и группы ресурсов 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 Resource Manager, например при создании виртуальной машины или удалении учетной записи хранения.

Тип события Description
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"
}]

В следующем примере показана схема события ResourceDeleteSuccess. Та же схема используется для событий 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"
}]

Свойства событий

Событие содержит следующие высокоуровневые данные:

Свойство Type Описание:
source строка Полный путь к ресурсу источника событий. Это поле защищено от записи. Это значение предоставляет Сетка событий.
subject строка Определенный издателем путь к субъекту события.
type строка Один из зарегистрированных типов событий для этого источника событий.
time строка Время создания события с учетом времени поставщика в формате UTC.
id строка Уникальный идентификатор события.
data объект Данные события группы ресурсов.
specversion строка Версия спецификации схемы CloudEvents.

Объект данных имеет следующие свойства:

Свойство Type Описание
authorization объект Запрошенная авторизация для операции.
claims объект Свойства утверждений. Дополнительные сведения см. в спецификациях JWT.
correlationId строка Идентификатор операции для устранения неполадок.
httpRequest объект Подробные сведения об операции. Этот объект включается только при обновлении существующего ресурса или при удалении ресурса.
resourceProvider строка Поставщик ресурсов для операции.
resourceUri строка URI ресурса в операции.
operationName строка Выполненная операция.
status строка Состояние операции.
subscriptionId строка Идентификатор подписки ресурса.
tenantId строка Идентификатор клиента ресурса.

Практические руководства и другие учебные материалы

Заголовок Description
Отслеживание изменений виртуальной машины с помощью Azure Logic Apps и службы "Сетка событий Azure" Приложение логики отслеживает изменения в виртуальной машине и отправляет сообщения электронной почты об этих изменениях.
Создание подписки на события, связанные с группой ресурсов, с использованием Azure CLI Пример сценария, позволяющий подписаться на события, связанные с группой ресурсов. Он отправляет события в веб-перехватчик.
Подписка на события группы ресурсов и фильтрация событий для ресурса с использованием Azure CLI Пример сценария, позволяющий подписаться на события группы ресурсов и отфильтровать события для ресурса.
Создание подписки на события, связанные с группой ресурсов, с использованием PowerShell Пример сценария, позволяющий подписаться на события, связанные с группой ресурсов. Он отправляет события в веб-перехватчик.
Подписка на события группы ресурсов и фильтрация по ресурсу с использованием PowerShell Пример сценария, позволяющий подписаться на события группы ресурсов и отфильтровать события для ресурса.
Шаблон Resource Manager: подписка на ресурсы Подписывается на события для группы ресурсов или подписки Azure. Он отправляет события в веб-перехватчик.

Следующие шаги