Grupo de recursos do Azure como uma origem de Grade de Eventos
Este artigo fornece as propriedades e o esquema para eventos de grupo de recursos. 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 um grupo de recursos, seu ponto de extremidade recebe todos os eventos desse grupo de recursos. 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
Os grupos de recursos 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}",
"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"
}]
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}/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"
}]
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}/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"
}]
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 de eventos do grupo de recursos. |
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: monitorar alterações de máquina virtual com a Grade de Eventos do Azure e os Aplicativos Lógicos | Um aplicativo lógico monitora as alterações em uma máquina virtual e envia e-mails sobre essas alterações. |
CLI do Azure: inscrever-se em eventos para um grupo de recursos | Script de exemplo que assina eventos para um grupo de recursos. Ele envia eventos para um WebHook. |
CLI do Azure: inscrever-se em eventos para um grupo de recursos e filtrar um recurso | Script de exemplo que assina eventos para um grupo de recursos e filtra eventos para um recurso. |
PowerShell: inscrever-se em eventos para um grupo de recursos | Script de exemplo que assina eventos para um grupo de recursos. Ele envia eventos para um WebHook. |
PowerShell: inscrever-se em eventos para um grupo de recursos e filtrar um recurso | Script de exemplo que assina eventos para um grupo de recursos e filtra eventos para um recurso. |
Modelo do Resource Manager: subscrição de recursos | Inscreve-se em eventos para uma assinatura do Azure ou grupo de recursos. Ele 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.