Gruppo di risorse di Azure come origine griglia di eventi

Questo articolo illustra le proprietà e lo schema per gli eventi del gruppo di risorse. Per un'introduzione agli schemi di eventi, vedere Schema di eventi di Griglia di eventi di Azure.

I gruppi di risorse e le sottoscrizioni di Azure generano gli stessi tipi di evento. I tipi di evento sono correlati ad azioni o modifiche nelle risorse. La differenza principale è che i gruppi di risorse generano eventi per le risorse all'interno del gruppo di risorse, mentre le sottoscrizioni di Azure generano eventi per le risorse all'interno della sottoscrizione.

Gli eventi per le risorse vengono creati per le operazioni PUT, PATCH, POST e DELETE inviate a management.azure.com. Le operazioni GET non creano eventi. Le operazioni inviate al piano dati (ad esempio myaccount.blob.core.windows.net) non creano eventi. Gli eventi di azione forniscono i dati dell'evento per operazioni come la creazione di un elenco delle chiavi per una risorsa.

Quando si esegue la sottoscrizione per gli eventi di un gruppo di risorse, l'endpoint riceve tutti gli eventi da tale gruppo. Gli eventi possono includere eventi che si desidera visualizzare, ad esempio l'aggiornamento di una macchina virtuale, ma anche gli eventi che non sono importanti per l'utente, ad esempio la scrittura di una nuova voce nella cronologia della distribuzione. È possibile ricevere tutti gli eventi nell'endpoint e scrivere il codice che elabora gli eventi che si vuole gestire. In alternativa, è possibile impostare un filtro quando si crea la sottoscrizione dell'evento.

Per gestire gli eventi a livello di programmazione, è possibile ordinare gli eventi esaminando il valore operationName. Ad esempio, l'endpoint dell'evento potrebbe elaborare solo gli eventi per le operazioni uguali a Microsoft.Compute/virtualMachines/write o Microsoft.Storage/storageAccounts/write.

L'oggetto dell'evento è l'ID risorsa della risorsa di destinazione dell'operazione. Per filtrare gli eventi per una risorsa, fornire l'ID della risorsa quando si crea la sottoscrizione dell'evento. Per filtrare in base a un tipo di risorsa, usare un valore nel formato seguente: /subscriptions/<subscription-id>/resourcegroups/<resource-group>/providers/Microsoft.Compute/virtualMachines

Tipi di evento disponibili

I gruppi di risorse generano eventi di gestione da Azure Resource Manager, ad esempio quando viene creata una VM o viene eliminato un account di archiviazione.

Tipo di evento Descrizione
Microsoft.Resources.ResourceActionCancel Generato quando l'azione sulla risorsa viene annullata.
Microsoft.Resources.ResourceActionFailure Generato quando l'azione sulla risorsa ha esito negativo.
Microsoft.Resources.ResourceActionSuccess Generato quando l'azione sulla risorsa ha esito positivo.
Microsoft.Resources.ResourceDeleteCancel Generato quando l'operazione di eliminazione viene annullata. Questo evento si verifica quando viene annullata la distribuzione di un modello.
Microsoft.Resources.ResourceDeleteFailure Generato quando l'operazione di eliminazione ha esito negativo.
Microsoft.Resources.ResourceDeleteSuccess Generato quando l'operazione di eliminazione ha esito positivo.
Microsoft.Resources.ResourceWriteCancel Generato quando l'operazione di creazione o aggiornamento viene annullata.
Microsoft.Resources.ResourceWriteFailure Generato quando l'operazione di creazione o aggiornamento ha esito negativo.
Microsoft.Resources.ResourceWriteSuccess Generato quando l'operazione di creazione o aggiornamento ha esito positivo.

Evento di esempio

L'esempio seguente illustra lo schema di un evento ResourceWriteSuccess. Lo stesso schema viene usato per gli eventi ResourceWriteFailure e ResourceWriteCancel con valori diversi per eventType.

[{
  "subject": "/subscriptions/{subscription-id}/resourcegroups/{resource-group}/providers/Microsoft.Storage/storageAccounts/{storage-name}",
  "eventType": "Microsoft.Resources.ResourceWriteSuccess",
  "eventTime": "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}"
  },
  "dataVersion": "2",
  "metadataVersion": "1",
  "topic": "/subscriptions/{subscription-id}/resourceGroups/{resource-group}"
}]

L'esempio seguente illustra lo schema di un evento ResourceDeleteSuccess. Lo stesso schema viene usato per gli eventi ResourceDeleteFailure e ResourceDeleteCancel con valori diversi per eventType.

[{
  "subject": "/subscriptions/{subscription-id}/resourceGroups/{resource-group}/providers/Microsoft.Storage/storageAccounts/{storage-name}",
  "eventType": "Microsoft.Resources.ResourceDeleteSuccess",
  "eventTime": "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}"
  },
  "dataVersion": "2",
  "metadataVersion": "1",
  "topic": "/subscriptions/{subscription-id}/resourceGroups/{resource-group}"
}]

L'esempio seguente illustra lo schema di un evento ResourceActionSuccess. Lo stesso schema viene usato per gli eventi ResourceActionFailure e ResourceActionCancel con valori diversi per eventType.

[{   
  "subject": "/subscriptions/{subscription-id}/resourceGroups/{resource-group}/providers/Microsoft.EventHub/namespaces/{namespace}/AuthorizationRules/RootManageSharedAccessKey",
  "eventType": "Microsoft.Resources.ResourceActionSuccess",
  "eventTime": "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}"
  },
  "dataVersion": "2",
  "metadataVersion": "1",
  "topic": "/subscriptions/{subscription-id}/resourceGroups/{resource-group}" 
}]

Proprietà degli eventi

Un evento presenta i seguenti dati di primo livello:

Proprietà Type Descrizione
topic string Percorso risorsa completo dell'origine evento. Questo campo non è scrivibile. Questo valore viene fornito da Griglia di eventi.
subject string Percorso dell'oggetto dell'evento definito dall'origine di pubblicazione.
eventType string Uno dei tipi di evento registrati per l'origine evento.
eventTime string Ora di generazione dell'evento in base all'ora UTC del provider.
id string Identificatore univoco dell'evento.
data object Dati dell'evento del gruppo di risorse.
dataVersion string Versione dello schema dell'oggetto dati. La versione dello schema è definita dall'origine di pubblicazione.
metadataVersion string Versione dello schema dei metadati dell'evento. Lo schema delle proprietà di primo livello è definito da Griglia di eventi. Questo valore viene specificato da Griglia di eventi.

Di seguito sono elencate le proprietà dell'oggetto dati:

Proprietà Type Descrizione
authorization object L'autorizzazione richiesta per l'operazione.
claims object Le proprietà delle attestazioni. Per altre informazioni, vedere specifiche dei token JWT.
correlationId string Un ID operazione per la risoluzione dei problemi.
httpRequest object I dettagli dell'operazione. Questo oggetto è incluso soltanto quando si aggiorna una risorsa esistente o la si elimina.
resourceProvider string Provider di risorse per l'operazione.
resourceUri string L'URI della risorsa nell'operazione.
operationName string Operazione eseguita.
status string Stato dell'operazione.
subscriptionId string L'ID sottoscrizione della risorsa.
tenantId string L'ID tenant della risorsa.

Esercitazioni e procedure

Titolo Descrizione
Esercitazione: Monitorare le modifiche delle macchine virtuali con Griglia di eventi di Azure e App per la logica Un'app per la logica monitora le modifiche a una macchina virtuale e invia messaggi di posta elettronica su tali modifiche.
Interfaccia della riga di comando di Azure: sottoscrivere eventi per un gruppo di risorse Script di esempio che sottoscrive eventi per un gruppo di risorse. Invia eventi a un webhook.
Interfaccia della riga di comando di Azure: sottoscrivere eventi per un gruppo di risorse e applicare un filtro per una risorsa Script di esempio che sottoscrive eventi per un gruppo di risorse e applica un filtro per una risorsa.
PowerShell: sottoscrivere eventi per un gruppo di risorse Script di esempio che sottoscrive eventi per un gruppo di risorse. Invia eventi a un webhook.
PowerShell: sottoscrivere eventi per un gruppo di risorse e applicare un filtro per una risorsa Script di esempio che sottoscrive eventi per un gruppo di risorse e applica un filtro per una risorsa.
Modello di Resource Manager: sottoscrizione della risorsa Sottoscrive eventi per una sottoscrizione di Azure o un gruppo di risorse. Invia eventi a un webhook.

Passaggi successivi