Subscrição do Azure como origem da Grelha de Eventos
Este artigo fornece as propriedades e o esquema para eventos de assinatura do Azure. Para obter uma introdução aos esquemas de eventos, consulte Esquema de eventos da Grade de Eventos do Azure.
As assinaturas do Azure e os grupos de recursos emitem os mesmos tipos de evento. Os tipos de evento estão relacionados a alterações ou ações de recursos. A principal diferença é que os grupos de recursos emitem eventos para recursos dentro do grupo de recursos e as assinaturas do Azure emitem eventos para recursos em toda a assinatura.
Os eventos de recurso são criados para operações PUT, PATCH, POST e DELETE que são enviadas para .management.azure.com
As operações GET não criam eventos. As operações enviadas para o plano de dados (como myaccount.blob.core.windows.net
) não criam eventos. Os eventos de ação fornecem dados de evento para operações como listar as chaves de um recurso.
Quando você se inscreve em eventos para uma assinatura do Azure, seu ponto de extremidade recebe todos os eventos dessa assinatura. Os eventos podem incluir eventos que você deseja ver, como atualizar uma máquina virtual, mas também eventos que não são importantes para você, como escrever uma nova entrada no histórico de implantação. Você pode receber todos os eventos em seu ponto de extremidade e escrever código que processa os eventos que deseja manipular. Ou, você pode definir um filtro ao criar a assinatura do evento.
Para manipular eventos de forma programática, você pode classificar eventos observando o operationName
valor. Por exemplo, seu ponto de extremidade de evento pode processar apenas eventos para operações iguais a Microsoft.Compute/virtualMachines/write
ou Microsoft.Storage/storageAccounts/write
.
O assunto do evento é a ID do recurso que é o destino da operação. Para filtrar eventos para um recurso, forneça essa ID de recurso ao criar a assinatura do evento. Para filtrar por um tipo de recurso, use um valor no seguinte formato: /subscriptions/<subscription-id>/resourcegroups/<resource-group>/providers/Microsoft.Compute/virtualMachines
Tipos de eventos disponíveis
As assinaturas do Azure emitem eventos de gerenciamento do Gerenciador de Recursos do Azure, como quando uma VM é criada ou uma conta de armazenamento é excluída.
Tipo de evento | Description |
---|---|
Microsoft.Resources.ResourceActionCancel | Gerado quando a ação no recurso é cancelada. |
Microsoft.Resources.ResourceActionFailure | Gerado quando a ação no recurso falha. |
Microsoft.Resources.ResourceActionSuccess | Gerado quando a ação sobre o recurso é bem-sucedida. |
Microsoft.Resources.ResourceDeleteCancel | Gerado quando a operação de exclusão é cancelada. Esse evento acontece quando uma implantação de modelo é cancelada. |
Microsoft.Resources.ResourceDeleteFailure | Gerado quando a operação de exclusão falha. |
Microsoft.Resources.ResourceDeleteSuccess | Gerado quando a operação de exclusão é bem-sucedida. |
Microsoft.Resources.ResourceWriteCancel | Gerado quando a operação de criação ou atualização é cancelada. |
Microsoft.Resources.ResourceWriteFailure | Gerado quando a operação de criação ou atualização falha. |
Microsoft.Resources.ResourceWriteSuccess | Gerado quando a operação de criação ou atualização é bem-sucedida. |
Exemplo de evento
O exemplo a seguir mostra o esquema para um evento ResourceWriteSuccess . O mesmo esquema é usado para eventos ResourceWriteFailure e ResourceWriteCancel com valores diferentes para 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"
}]
O exemplo a seguir mostra o esquema para um evento ResourceDeleteSuccess . O mesmo esquema é usado para eventos ResourceDeleteFailure e ResourceDeleteCancel com valores diferentes para 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"
}]
O exemplo a seguir mostra o esquema para um evento ResourceActionSuccess . O mesmo esquema é usado para eventos ResourceActionFailure e ResourceActionCancel com valores diferentes para 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"
}]
Propriedades do evento
Um evento tem os seguintes dados de nível superior:
Propriedade | Type | Description |
---|---|---|
source |
string | Caminho completo do recurso para a origem do evento. Este campo não pode ser gravado. O Event Grid fornece este valor. |
subject |
string | Caminho definido pelo publicador para o assunto do evento. |
type |
string | Um dos tipos de eventos registados para esta origem de evento. |
time |
string | A hora em que o evento é gerado com base na hora UTC do provedor. |
id |
string | Identificador exclusivo do evento. |
data |
objeto | Dados do evento de assinatura. |
specversion |
string | Versão da especificação do esquema CloudEvents. |
O objeto de dados tem as seguintes propriedades:
Propriedade | Type | Description |
---|---|---|
authorization |
objeto | A autorização solicitada para a operação. |
claims |
objeto | As propriedades das reivindicações. Para obter mais informações, consulte Especificação JWT. |
correlationId |
string | Um ID de operação para solução de problemas. |
httpRequest |
objeto | Os detalhes da operação. Este objeto só é incluído ao atualizar um recurso existente ou excluir um recurso. |
resourceProvider |
string | O provedor de recursos para a operação. |
resourceUri |
string | O URI do recurso na operação. |
operationName |
string | A operação que foi feita. |
status |
string | O estado da operação. |
subscriptionId |
string | A ID de assinatura do recurso. |
tenantId |
string | A ID do locatário do recurso. |
Tutorials and how-tos (Tutoriais e procedimentos)
Title | Description |
---|---|
Tutorial: Automação do Azure com Grade de Eventos e Microsoft Teams | Crie uma máquina virtual, que envia um evento. O evento dispara um runbook de automação que marca a máquina virtual e dispara uma mensagem que é enviada para um canal do Microsoft Teams. |
Como: subscrever eventos através do portal | Use o portal para se inscrever em eventos para uma assinatura do Azure. |
CLI do Azure: inscrever-se em eventos para uma assinatura do Azure | Script de exemplo que cria uma assinatura de Grade de Eventos para uma assinatura do Azure e envia eventos para um WebHook. |
PowerShell: inscrever-se em eventos para uma assinatura do Azure | Script de exemplo que cria uma assinatura de Grade de Eventos para uma assinatura do Azure e envia eventos para um WebHook. |
Próximos passos
- Para obter uma introdução à Grade de Eventos do Azure, consulte O que é a Grade de Eventos?.
- Para obter mais informações sobre como criar uma assinatura da Grade de Eventos do Azure, consulte Esquema de assinatura da Grade de Eventos.