Subskrypcja platformy Azure jako źródło usługi Event Grid

Ten artykuł zawiera właściwości i schemat zdarzeń subskrypcji platformy Azure. Aby zapoznać się ze schematami zdarzeń, zobacz Schemat zdarzeń usługi Azure Event Grid.

Subskrypcje i grupy zasobów platformy Azure emitują te same typy zdarzeń. Typy zdarzeń są powiązane ze zmianami lub akcjami zasobów. Podstawową różnicą jest to, że grupy zasobów emitują zdarzenia dla zasobów w grupie zasobów, a subskrypcje platformy Azure emitują zdarzenia dla zasobów w ramach subskrypcji.

Zdarzenia zasobów są tworzone dla operacji PUT, PATCH, POST i DELETE wysyłanych do programu management.azure.com. Operacje GET nie tworzą zdarzeń. Operacje wysyłane do płaszczyzny danych (na przykład myaccount.blob.core.windows.net) nie tworzą zdarzeń. Zdarzenia akcji udostępniają dane zdarzenia dla operacji, takich jak wyświetlanie listy kluczy dla zasobu.

Po zasubskrybowaniu zdarzeń dla subskrypcji platformy Azure punkt końcowy otrzymuje wszystkie zdarzenia dla tej subskrypcji. Zdarzenia mogą obejmować zdarzenia, które chcesz zobaczyć, takie jak aktualizowanie maszyny wirtualnej, ale także zdarzenia, które nie są dla Ciebie ważne, takie jak pisanie nowego wpisu w historii wdrażania. Wszystkie zdarzenia można odbierać w punkcie końcowym i pisać kod, który przetwarza zdarzenia, które chcesz obsłużyć. Możesz też ustawić filtr podczas tworzenia subskrypcji zdarzeń.

Aby programowo obsługiwać zdarzenia, można sortować zdarzenia, przeglądając operationName wartość. Na przykład punkt końcowy zdarzenia może przetwarzać tylko zdarzenia dla operacji, które są równe Microsoft.Compute/virtualMachines/write lub Microsoft.Storage/storageAccounts/write.

Temat zdarzenia jest identyfikatorem zasobu, który jest celem operacji. Aby filtrować zdarzenia dla zasobu, podaj ten identyfikator zasobu podczas tworzenia subskrypcji zdarzeń. Aby filtrować według typu zasobu, użyj wartości w następującym formacie: /subscriptions/<subscription-id>/resourcegroups/<resource-group>/providers/Microsoft.Compute/virtualMachines

Dostępne typy zdarzeń

Subskrypcje platformy Azure emitują zdarzenia zarządzania z usługi Azure Resource Manager, takie jak po utworzeniu maszyny wirtualnej lub usunięciu konta magazynu.

Typ zdarzenia opis
Microsoft.Resources.ResourceActionCancel Zgłoszone po anulowaniu akcji dotyczącej zasobu.
Microsoft.Resources.ResourceActionFailure Zgłoszone, gdy akcja zasobu kończy się niepowodzeniem.
Microsoft.Resources.ResourceActionSuccess Zgłoszone, gdy akcja zasobu zakończy się powodzeniem.
Microsoft.Resources.ResourceDeleteCancel Wywoływane po anulowaniu operacji usuwania. To zdarzenie ma miejsce, gdy wdrożenie szablonu zostanie anulowane.
Microsoft.Resources.ResourceDeleteFailure Zgłaszane, gdy operacja usuwania kończy się niepowodzeniem.
Microsoft.Resources.ResourceDeleteSuccess Zgłoszone po pomyślnym zakończeniu operacji usuwania.
Microsoft.Resources.ResourceWriteCancel Zgłoszone podczas anulowania operacji tworzenia lub aktualizacji.
Microsoft.Resources.ResourceWriteFailure Zgłaszane, gdy operacja tworzenia lub aktualizacji kończy się niepowodzeniem.
Microsoft.Resources.ResourceWriteSuccess Wywoływane po pomyślnym utworzeniu lub aktualizacji operacji.

Przykładowe zdarzenie

Poniższy przykład przedstawia schemat zdarzenia ResourceWriteSuccess . Ten sam schemat jest używany dla zdarzeń ResourceWriteFailure i ResourceWriteCancel z różnymi wartościami dla elementu 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"

}]

Poniższy przykład przedstawia schemat zdarzenia ResourceDeleteSuccess . Ten sam schemat jest używany dla zdarzeń ResourceDeleteFailure i ResourceDeleteCancel z różnymi wartościami dla elementu 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"
}]

Poniższy przykład przedstawia schemat zdarzenia ResourceActionSuccess . Ten sam schemat jest używany dla zdarzeń ResourceActionFailure i ResourceActionCancel z różnymi wartościami dla elementu 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"
}]

Właściwości zdarzenia

Zdarzenie ma następujące dane najwyższego poziomu:

Właściwość Type opis
source string Pełna ścieżka zasobu do źródła zdarzeń. To pole nie jest możliwe do zapisu. Ta wartość jest podawana przez usługę Event Grid.
subject string Zdefiniowana przez wydawcę ścieżka do tematu zdarzenia.
type string Jeden z zarejestrowanych typów zdarzeń dla tego źródła zdarzeń.
time string Czas generowania zdarzenia na podstawie czasu UTC dostawcy.
id string Unikatowy identyfikator zdarzenia.
data obiekt Dane zdarzeń subskrypcji.
specversion string Wersja specyfikacji schematu CloudEvents.

Obiekt danych ma następujące właściwości:

Właściwość Type Opis
authorization obiekt Żądana autoryzacja dla operacji.
claims obiekt Właściwości oświadczeń. Aby uzyskać więcej informacji, zobacz specyfikacja JWT.
correlationId string Identyfikator operacji na potrzeby rozwiązywania problemów.
httpRequest obiekt Szczegóły operacji. Ten obiekt jest dołączany tylko podczas aktualizowania istniejącego zasobu lub usuwania zasobu.
resourceProvider string Dostawca zasobów dla operacji.
resourceUri string Identyfikator URI zasobu w operacji.
operationName string Operacja, która została podjęta.
status string Stan operacji.
subscriptionId string Identyfikator subskrypcji zasobu.
tenantId string Identyfikator dzierżawy zasobu.

Samouczki i poradniki

Nazwa opis
Samouczek: usługa Azure Automation z usługą Event Grid i usługą Microsoft Teams Utwórz maszynę wirtualną, która wysyła zdarzenie. Zdarzenie wyzwala element Runbook usługi Automation, który taguje maszynę wirtualną, i wyzwala komunikat wysyłany do kanału usługi Microsoft Teams.
Instrukcje: subskrybowanie zdarzeń za pośrednictwem portalu Użyj portalu, aby subskrybować zdarzenia dla subskrypcji platformy Azure.
Interfejs wiersza polecenia platformy Azure: subskrybowanie zdarzeń dla subskrypcji platformy Azure Przykładowy skrypt, który tworzy subskrypcję usługi Event Grid w subskrypcji platformy Azure i wysyła zdarzenia do elementu WebHook.
PowerShell: subskrybowanie zdarzeń dla subskrypcji platformy Azure Przykładowy skrypt, który tworzy subskrypcję usługi Event Grid w subskrypcji platformy Azure i wysyła zdarzenia do elementu WebHook.

Następne kroki

  • Aby zapoznać się z wprowadzeniem do usługi Azure Event Grid, zobacz Co to jest usługa Event Grid?.
  • Aby uzyskać więcej informacji na temat tworzenia subskrypcji usługi Azure Event Grid, zobacz Schemat subskrypcji usługi Event Grid.