Azure-Ressourcengruppe als Event Grid-Quelle

In diesem Artikel werden die Eigenschaften und das Schema für Ressourcengruppenereignisse beschrieben. Eine Einführung in Ereignisschemas finden Sie unter Azure Event Grid-Ereignisschema.

Azure-Abonnements und Ressourcengruppen geben die gleichen Ereignistypen aus. Die Ereignistypen beziehen sich auf Ressourcenänderungen oder -aktionen. Der Hauptunterschied besteht darin, dass Ressourcengruppen Ereignisse für Ressourcen innerhalb der Ressourcengruppe und Azure-Abonnements Ereignisse für Ressourcen im gesamten Abonnement ausgeben.

Ressourcenereignisse werden für PUT-, PATCH-, POST- und DELETE-Vorgänge erstellt, die an management.azure.com gesendet werden. Für GET-Vorgänge werden keine Ereignisse erstellt. Für Vorgänge, die an die Datenebene gesendet werden (etwa myaccount.blob.core.windows.net), werden keine Ereignisse erstellt. Die Aktionsereignisse stellen Ereignisdaten für Vorgänge wie das Auflisten der Schlüssel für eine Ressource bereit.

Wenn Sie Ereignisse für eine Ressourcengruppe abonnieren, erhält Ihr Endpunkt alle Ereignisse für diese Ressourcengruppe. Zu den Ereignissen können Ereignisse gehören, die Sie sehen möchten, z.B. die Aktualisierung einer VM, aber auch Ereignisse, die für Sie nicht wichtig sind, wie z. B. das Schreiben eines neuen Eintrags im Bereitstellungsverlauf. Sie können alle Ereignisse an einem Endpunkt empfangen und Code schreiben, in dem die Ereignisse verarbeitet werden, die Sie behandeln möchten. Sie können aber auch einen Filter festlegen, wenn Sie das Ereignisabonnement erstellen.

Zur programmgesteuerten Verarbeitung von Ereignissen können Sie Ereignisse sortieren, indem Sie sich den Wert für operationName ansehen. Beispielsweise werden für Ihren Endpunkt ggf. nur Ereignisse für Vorgänge verarbeitet, die Microsoft.Compute/virtualMachines/write oder Microsoft.Storage/storageAccounts/write entsprechen.

Der Betreff des Ereignisses ist die Ressourcen-ID der Ressource, die das Ziel des Vorgangs ist. Geben Sie zum Filtern von Ereignissen für eine Ressource beim Erstellen des Ereignisabonnements die Ressourcen-ID an. Verwenden Sie zum Filtern nach einem Ressourcentyp einen Wert im folgenden Format: /subscriptions/<subscription-id>/resourcegroups/<resource-group>/providers/Microsoft.Compute/virtualMachines

Verfügbare Ereignistypen

Ressourcengruppen können Verwaltungsereignisse von Azure Resource Manager ausgeben, beispielsweise wenn eine VM erstellt oder ein Speicherkonto gelöscht wird.

Ereignistyp BESCHREIBUNG
Microsoft.Resources.ResourceActionCancel Wird ausgelöst, wenn eine Aktion für eine Ressource abgebrochen wird.
Microsoft.Resources.ResourceActionFailure Wird ausgelöst, wenn eine Aktion für eine Ressource fehlschlägt.
Microsoft.Resources.ResourceActionSuccess Wird ausgelöst, wenn eine Aktion für eine Ressource erfolgreich ausgeführt wurde.
Microsoft.Resources.ResourceDeleteCancel Wird ausgelöst, wenn ein Löschvorgang abgebrochen wird. Dieses Ereignis tritt ein, wenn eine Vorlagenbereitstellung abgebrochen wird.
Microsoft.Resources.ResourceDeleteFailure Wird ausgelöst, wenn ein Löschvorgang fehlschlägt.
Microsoft.Resources.ResourceDeleteSuccess Wird ausgelöst, wenn ein Löschvorgang erfolgreich ausgeführt wurde.
Microsoft.Resources.ResourceWriteCancel Wird ausgelöst, wenn ein Erstellungs- oder Aktualisierungsvorgang abgebrochen wird.
Microsoft.Resources.ResourceWriteFailure Wird ausgelöst, wenn ein Erstellungs- oder Aktualisierungsvorgang fehlschlägt.
Microsoft.Resources.ResourceWriteSuccess Wird ausgelöst, wenn ein Erstellungs- oder Aktualisierungsvorgang erfolgreich ausgeführt wurde.

Beispielereignis

Im folgenden Beispiel wird das Schema für das Ereignis ResourceWriteSuccess veranschaulicht. Das gleiche Schema wird für die Ereignisse ResourceWriteFailure und ResourceWriteCancel verwendet, nur mit anderen Werten für 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"
}]

Im folgenden Beispiel wird das Schema für das Ereignis ResourceDeleteSuccess veranschaulicht. Das gleiche Schema wird für die Ereignisse ResourceDeleteFailure und ResourceDeleteCancel verwendet, nur mit anderen Werten für 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"
}]

Im folgenden Beispiel wird das Schema für ein ResourceActionSuccess-Ereignis veranschaulicht. Das gleiche Schema wird für ResourceActionFailure- und ResourceActionCancel-Ereignisse verwendet, nur mit anderen Werten für 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"
}]

Ereigniseigenschaften

Ein Ereignis weist die folgenden Daten auf oberster Ebene aus:

Eigenschaft Typ Beschreibung
source Zeichenfolge Vollständiger Ressourcenpfaf zur Ereignisquelle. Dieses Feld ist nicht beschreibbar. Dieser Wert wird von Event Grid bereitgestellt.
subject Zeichenfolge Vom Herausgeber definierter Pfad zum Ereignisbetreff
type Zeichenfolge Einer der registrierten Ereignistypen für die Ereignisquelle.
time Zeichenfolge Die Zeit, in der das Ereignis generiert wird, basierend auf der UTC-Zeit des Anbieters.
id Zeichenfolge Eindeutiger Bezeichner für das Ereignis.
data Objekt (object) Ereignisdaten der Ressourcengruppe.
specversion Zeichenfolge Version der CloudEvents-Schemaspezifikation.

Das Datenobjekt weist die folgenden Eigenschaften auf:

Eigenschaft Typ Beschreibung
authorization Objekt (object) Die angeforderte Autorisierung für den Vorgang.
claims Objekt (object) Die Eigenschaften der Ansprüche. Weitere Informationen finden Sie auf der Seite zur JWT-Spezifikation.
correlationId Zeichenfolge Eine Vorgangs-ID für die Problembehandlung.
httpRequest Objekt (object) Die Details des Vorgangs. Dieses Objekt ist nur enthalten, wenn eine vorhandene Ressource aktualisiert oder eine Ressource gelöscht wird.
resourceProvider Zeichenfolge Der Ressourcenanbieter für den Vorgang.
resourceUri Zeichenfolge Der URI der Ressource im Vorgang.
operationName Zeichenfolge Der Vorgang, der übernommen wurde.
status Zeichenfolge Der Status des Vorgangs.
subscriptionId Zeichenfolge Die Abonnement-ID der Ressource.
tenantId Zeichenfolge Die Mandanten-ID der Ressource.

Tutorials und Anleitungen

Titel BESCHREIBUNG
Tutorial: Überwachen von Änderungen an einem virtuellen Computer mit Azure Event Grid und Logic Apps Eine Logik-App überwacht die Änderungen an einem virtuellen Computer und sendet E-Mails zu diesen Änderungen.
Azure CLI: Abonnieren von Ereignissen für eine Ressourcengruppe Beispielskript, mit dem Ereignisse für eine Ressourcengruppe abonniert werden. Sendet Ereignisse an einen WebHook.
Azure CLI: Abonnieren von Ereignissen für eine Ressourcengruppe und Filtern nach einer Ressource Beispielskript, mit dem Ereignisse für eine Ressourcengruppe abonniert und Ereignisse nach einer Ressource gefiltert werden.
PowerShell: Abonnieren von Ereignissen für eine Ressourcengruppe Beispielskript, mit dem Ereignisse für eine Ressourcengruppe abonniert werden. Sendet Ereignisse an einen WebHook.
PowerShell: Abonnieren von Ereignissen für eine Ressourcengruppe und Filtern nach einer Ressource Beispielskript, mit dem Ereignisse für eine Ressourcengruppe abonniert und Ereignisse nach einer Ressource gefiltert werden.
Resource Manager-Vorlage: Ressourcenabonnement Abonniert Ereignisse für ein Azure-Abonnement oder eine Ressourcengruppe. Sendet Ereignisse an einen WebHook.

Nächste Schritte