Esquema CloudEvents v1.0 com a Grade de Eventos do Azure

A Grade de Eventos do Azure o oferece suporte nativo à implementação JSON do CloudEvents v1.0 e à vinculação ao protocolo HTTP. CloudEvents é uma especificação aberta para descrever dados de eventos.

O CloudEvents simplifica a interoperabilidade, fornecendo um esquema comum do evento para publicar e consumir eventos com base em nuvem. Esse esquema permite ferramentas uniforme, formas padrão de roteamento e manipulação de eventos e maneiras universais de desserializar o esquema de evento externo. Com um esquema comum, você pode integrar facilmente mais trabalho entre plataformas.

O CloudEvents está sendo criado por vários colaboradores, incluindo a Microsoft, por meio da Cloud Native Computing Foundation. Ele está disponível como versão 1.0.

Este artigo descreve o esquema CloudEvents com a Grade de Eventos.

Exemplo de evento usando o esquema CloudEvents

Aqui está um exemplo de um evento de Armazenamento de Blobs do Azure no formato CloudEvents:

{
    "specversion": "1.0",
    "type": "Microsoft.Storage.BlobCreated",  
    "source": "/subscriptions/{subscription-id}/resourceGroups/{resource-group}/providers/Microsoft.Storage/storageAccounts/{storage-account}",
    "id": "9aeb0fdf-c01e-0131-0922-9eb54906e209",
    "time": "2019-11-18T15:13:39.4589254Z",
    "subject": "blobServices/default/containers/{storage-container}/blobs/{new-file}",    
    "data": {
        "api": "PutBlockList",
        "clientRequestId": "4c5dd7fb-2c48-4a27-bb30-5361b5de920a",
        "requestId": "9aeb0fdf-c01e-0131-0922-9eb549000000",
        "eTag": "0x8D76C39E4407333",
        "contentType": "image/png",
        "contentLength": 30699,
        "blobType": "BlockBlob",
        "url": "https://gridtesting.blob.core.windows.net/testcontainer/{new-file}",
        "sequencer": "000000000000000000000000000099240000000000c41c18",
        "storageDiagnostics": {
            "batchId": "681fe319-3006-00a8-0022-9e7cde000000"
        }
    }
}

Uma descrição detalhada dos campos disponíveis, seus tipos e definições no CloudEvents v1.0 está disponível aqui.

Os valores dos cabeçalhos para eventos entregues no esquema CloudEvents e no esquema da Grade de Eventos são os mesmos, exceto para content-type. Para o esquema CloudEvents, esse valor de cabeçalho é "content-type":"application/cloudevents+json; charset=utf-8". Para o esquema Grade de Eventos, esse valor de cabeçalho é "content-type":"application/json; charset=utf-8".

Grade de Eventos para CloudEvents

Você pode usar a Grade de Eventos para entrada e saída de eventos no esquema CloudEvents. Você pode usar o CloudEvents para eventos do sistema, como eventos do Armazenamento de Blob e eventos do Hub IoT e eventos personalizados. Além de dar suporte ao CloudEvents, a Grade de Eventos dá suporte a um formato de evento proprietário, não existente, mas totalmente funcional da Grade de Eventos. A tabela a seguir descreve a transformação com suporte ao usar os formatos CloudEvents e Grade de Eventos como um esquema de entrada em tópicos e como um esquema de saída em assinaturas de evento. Um esquema de saída da Grade de Eventos não pode ser usado ao usar o CloudEvents como um esquema de entrada porque o CloudEvents dá suporte a atributos de extensão que não têm suporte no esquema da Grade de Eventos.

Esquema de entrada Esquema de saída
Formato de CloudEvents Formato de CloudEvents
Formato da Grade de Eventos Formato de CloudEvents
Formato da Grade de Eventos Formato da Grade de Eventos

Para todos os esquemas de evento, a Grade de Eventos requer validação ao publicar em um tópico de grade de eventos e ao criar uma inscrição de evento. Para saber mais, confira Event Grid security and authentication (Segurança e autenticação da Grade de Eventos).

Próximas etapas

Consulte Como usar o esquema CloudEvents v 1.0 com a Grade de Eventos.