Esquema CloudEvents v1.0 com a Grade de Eventos do Azure
Artigo
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.
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".
Configuração 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).
Esquema de entrada
Quando você cria o tópico personalizado, define o esquema de entrada para ele usando o parâmetro input-schema.
Se estiver usando o Visual Studio ou o Visual Studio Code e a linguagem de programação C# para desenvolver funções, certifique-se de estar usando o pacote NuGet Microsoft.Azure.WebJobs.Extensions.EventGrid mais recente (versão 3.3.1 ou superior).
No Visual Studio, use as Ferramentas – >Gerenciador de Pacotes NuGet – >Console do Gerenciador de Pacotes e execute o comando Install-Package (Install-Package Microsoft.Azure.WebJobs.Extensions.EventGrid -Version 3.3.1). Como alternativa, clique com o botão direito do mouse no projeto na janela Gerenciador de Soluções e selecione o menu Gerenciar Pacotes NuGet, para procurar o pacote NuGet, e instale-o ou atualize-o para a versão mais recente.
No VS Code, atualize o número de versão do pacote Microsoft.Azure.WebJobs.Extensions.EventGrid no arquivo csproj do projeto Azure Functions.
O exemplo a seguir mostra uma função do Azure Functions versão 3.x desenvolvida no Visual Studio ou no Visual Studio Code. Ele usa um parâmetro de associação CloudEvent e EventGridTrigger.
using Azure.Messaging;
using Microsoft.Azure.WebJobs;
using Microsoft.Azure.WebJobs.Extensions.EventGrid;
using Microsoft.Extensions.Logging;
namespace Company.Function
{
public static class CloudEventTriggerFunction
{
[FunctionName("CloudEventTriggerFunction")]
public static void Run(ILogger logger, [EventGridTrigger] CloudEvent e)
{
logger.LogInformation("Event received {type} {subject}", e.Type, e.Subject);
}
}
}
Experiência de desenvolvimento no portal do Azure
Se estiver usando o portal do Azure para desenvolver uma função do Azure, siga estas etapas:
Atualize o nome do parâmetro no arquivo function.json para cloudEvent.
Crie soluções de ponta a ponta no Microsoft Azure para criar Funções do Azure, implementar e gerenciar aplicativos Web, desenvolver soluções utilizando o Armazenamento do Microsoft Azure e muito mais.