Partilhar via


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

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

O CloudEvents simplifica a interoperabilidade fornecendo um esquema de eventos comum para publicação e consumo de eventos baseados em nuvem. Esse esquema permite ferramentas uniformes, formas padrão de roteamento e manipulação de eventos e maneiras universais de desserializar o esquema de eventos externos. Com um esquema comum, você pode integrar mais facilmente o trabalho entre plataformas.

O CloudEvents está a ser construído por vários colaboradores, incluindo a Microsoft, através da Cloud Native Computing Foundation. Atualmente está disponível como versão 1.0.

Este artigo descreve o esquema CloudEvents com Event Grid.

Exemplo de evento usando o esquema CloudEvents

Aqui está um exemplo de um evento de Armazenamento de Blob 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 de cabeçalhos para eventos entregues no esquema CloudEvents e no esquema Event Grid 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 de 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 do CloudEvents. Você pode usar o CloudEvents para eventos do sistema, como eventos de Armazenamento de Blob e eventos do Hub IoT, e eventos personalizados. Além de suportar CloudEvents, o Event Grid suporta um formato de evento proprietário, não extensível, mas totalmente funcional. A tabela a seguir descreve a transformação suportada ao usar os formatos CloudEvents e Event Grid como um esquema de entrada em tópicos e como um esquema de saída em assinaturas de eventos. Um esquema de saída de Grade de Eventos não pode ser usado ao usar o CloudEvents como um esquema de entrada porque o CloudEvents oferece suporte a atributos de extensão que não são suportados pelo esquema de Grade de Eventos.

Esquema de entrada Esquema de saída
Formato CloudEvents Formato CloudEvents
Formato da grelha de eventos Formato CloudEvents
Formato da grelha de eventos Formato da grelha de eventos

Para todos os esquemas de eventos, a Grade de Eventos requer validação ao publicar em um tópico de Grade de Eventos e ao criar uma assinatura de evento. Para obter mais informações, consulte Segurança e autenticação da grade de eventos.

Próximos passos

Consulte Como usar o esquema do CloudEvents v1.0 com a grade de eventos.