Encaminhar eventos personalizados para o ponto de extremidade da Web com o portal do Azure e a Grade de Eventos do Azure
A Grade de Eventos é um serviço totalmente gerenciado que permite gerenciar facilmente eventos em muitos serviços e aplicativos diferentes do Azure. Ele simplifica a criação de aplicativos orientados a eventos e sem servidor. Para obter uma visão geral do serviço, consulte Visão geral da grade de eventos.
Neste artigo, você usa o portal do Azure para executar as seguintes tarefas:
- Crie um tópico personalizado.
- Inscreva-se no tópico personalizado.
- Acione o evento.
- Veja o resultado. Normalmente, envia eventos para um ponto final que processa os dados de eventos e efetua ações. No entanto, para simplificar este artigo, vai enviar eventos para uma aplicação Web que recolhe e apresenta as mensagens.
Pré-requisitos
Se não tiver uma subscrição do Azure, crie uma conta gratuita do Azure antes de começar.
Registrar o provedor de recursos da Grade de Eventos
A menos que você já tenha usado a Grade de Eventos antes, precisará registrar o provedor de recursos da Grade de Eventos. Se já utilizou a Grelha de Eventos antes, avance para a secção seguinte.
No portal do Azure, execute as seguintes etapas:
No menu à esquerda, selecione Assinaturas.
Selecione a subscrição que pretende utilizar para a Grelha de Eventos na lista de subscrições.
Na página Assinatura, selecione Provedores de recursos em Configurações no menu à esquerda.
Procure Microsoft.EventGrid e confirme se o Status não está registrado.
Selecione Microsoft.EventGrid na lista de provedores.
Selecione Registrar na barra de comandos.
Atualize para verificar se o status de Microsoft.EventGrid foi alterado para Registrado.
Criar um tópico personalizado
Um tópico de Grade de Eventos fornece um ponto de extremidade definido pelo usuário no qual você posta seus eventos.
Inicie sessão no portal do Azure.
Na barra de pesquisa do tópico, digite Tópicos da Grade de Eventos e selecione Tópicos da Grade de Eventos na lista suspensa.
Na página Tópicos da Grade de Eventos , selecione + Criar na barra de ferramentas.
Na página Criar tópico, siga estas etapas:
Selecione a sua subscrição do Azure.
Selecione um grupo de recursos existente ou selecione Criar novo e insira um nome para o grupo de recursos.
Forneça um nome exclusivo para o tópico personalizado. O nome do tópico deve ser exclusivo, porque este é representado por uma entrada DNS. Não utilize o nome apresentado na imagem. Em vez disso, crie seu próprio nome - ele deve ter entre 3-50 caracteres e conter apenas os valores a-z, A-Z, 0-9 e "-".
Selecione um local para o tópico Grade de Eventos.
Selecione Rever + criar na parte inferior da página.
Na guia Revisão + criação da página Criar tópico, selecione Criar.
Depois que a implantação for bem-sucedida, selecione Ir para o recurso para navegar até a página Tópico da Grade de Eventos do tópico. Mantenha esta página aberta. Você usá-lo mais tarde no início rápido.
Nota
Para manter o início rápido simples, você usará apenas a página Noções básicas para criar um tópico. Para obter etapas detalhadas sobre como definir configurações de rede, segurança e residência de dados em outras páginas do assistente, consulte Criar um tópico personalizado.
Criar um ponto final de mensagem
Antes de criar uma assinatura para o tópico personalizado, crie um ponto de extremidade para a mensagem do evento. Normalmente, o ponto final executa as ações com base nos dados do evento. Para simplificar esse início rápido, implante um aplicativo Web pré-criado que exibe as mensagens do evento. A solução implementada inclui um plano do Serviço de Aplicações, uma aplicação Web do Serviço de Aplicações e o código de origem do GitHub.
Na página do artigo, selecione Implantar no Azure para implantar a solução em sua assinatura. No portal do Azure, indique os valores para os parâmetros.
Na página Implantação personalizada, execute as seguintes etapas:
Em Grupo de recursos, selecione um grupo de recursos existente ou crie um grupo de recursos.
Em Nome do Site, insira um nome para o aplicativo Web.
Em Nome do plano de hospedagem, insira um nome para o plano do Serviço de Aplicativo a ser usado para hospedar o aplicativo Web.
Selecione Rever + criar.
Na página Rever + criar, selecione Criar.
A implementação pode demorar alguns minutos. Selecione Alertas (ícone de sino) no portal e, em seguida, selecione Ir para o grupo de recursos.
Na página Grupo de recursos, na lista de recursos, selecione o aplicativo Web (contosoegriviewer no exemplo a seguir) que você criou.
Na página Serviço de Aplicativo do seu aplicativo Web, selecione a URL para navegar até o site. O URL deve estar neste formato:
https://<your-site-name>.azurewebsites.net
.Confirme que vê o site, mas que ainda não foram publicados eventos no mesmo.
Subscrever um tópico personalizado
Você se inscreve em um tópico da Grade de Eventos para informar à Grade de Eventos quais eventos deseja acompanhar e para onde enviá-los.
Agora, na página Tópico da Grade de Eventos do seu tópico personalizado, selecione + Assinatura de Evento na barra de ferramentas.
Na página Criar Subscrição de Eventos , siga estes passos:
Insira um nome para a assinatura do evento.
Selecione Web Hook para o tipo Endpoint.
Escolha Selecionar um ponto de extremidade.
Para o ponto final do webhook, indique o URL da sua aplicação Web e adicione
api/updates
ao URL da home page. Selecione Confirmar a Seleção.De volta à página Criar Assinatura de Evento , selecione Criar.
Verifique a aplicação Web novamente e repare que um evento de validação de subscrição foi enviado para a mesma. Selecione o ícone do olho para expandir os dados do evento. O Event Grid envia o evento de validação para que o ponto final possa verificar que pretende receber dados de eventos. A aplicação Web inclui código para validar a subscrição.
Enviar um evento para o seu tópico
Agora, vamos acionar um evento para ver como o Event Grid distribui a mensagem para o ponto final. Utilize a CLI do Azure ou o PowerShell para enviar um evento de teste para o seu tópico personalizado. Normalmente, uma aplicação ou serviço do Azure enviaria os dados do evento.
O primeiro exemplo utiliza a CLI do Azure. Obtém o URL e a chave para o tópico personalizado e os dados do evento de exemplo. Utilize o nome do tópico personalizado de <topic name>
. Este cria dados do evento de exemplo. O elemento data
do JSON é o payload do evento. Qualquer JSON bem formado pode ir para este campo. Também pode utilizar o campo do assunto para encaminhamento e filtragem avançados. CURL é um utilitário que envia os pedidos HTTP.
CLI do Azure
No portal do Azure, selecione Cloud Shell. O Cloud Shell é aberto no painel inferior do navegador da Web.
Selecione Bash no canto superior esquerdo da janela do Cloud Shell.
Execute o seguinte comando para obter o ponto de extremidade para o tópico: Depois de copiar e colar o comando, atualize o nome do tópico e o nome do grupo de recursos antes de executar o comando. Você publica eventos de exemplo para este ponto de extremidade de tópico.
endpoint=$(az eventgrid topic show --name <topic name> -g <resource group name> --query "endpoint" --output tsv)
Execute o seguinte comando para obter a chave para o tópico personalizado: Depois de copiar e colar o comando, atualize o nome do tópico e o nome do grupo de recursos antes de executar o comando. É a chave primária do tópico Grade de Eventos. Para obter essa chave do portal do Azure, alterne para a guia Teclas de acesso da página Tópico da Grade de Eventos . Para poder postar um evento em um tópico personalizado, você precisa da chave de acesso.
key=$(az eventgrid topic key list --name <topic name> -g <resource group name> --query "key1" --output tsv)
Copie a instrução a seguir com a definição de evento e pressione ENTER.
event='[ {"id": "'"$RANDOM"'", "eventType": "recordInserted", "subject": "myapp/vehicles/motorcycles", "eventTime": "'`date +%Y-%m-%dT%H:%M:%S%z`'", "data":{ "make": "Ducati", "model": "Monster"},"dataVersion": "1.0"} ]'
Execute o seguinte comando Curl para postar o evento: No comando,
aeg-sas-key
o cabeçalho é definido como a chave de acesso que você obteve anteriormente.curl -X POST -H "aeg-sas-key: $key" -d "$event" $endpoint
Azure PowerShell
O segundo exemplo usa o PowerShell para executar etapas semelhantes.
No portal do Azure, selecione Cloud Shell (alternativamente, vá para
https://shell.azure.com/
). O Cloud Shell é aberto no painel inferior do navegador da Web.No Cloud Shell, selecione PowerShell no canto superior esquerdo da janela do Cloud Shell. Consulte a imagem de exemplo da janela do Cloud Shell na seção CLI do Azure.
Defina as seguintes variáveis. Depois de copiar e colar cada comando, atualize o nome do tópico e o nome do grupo de recursos antes de executar o comando:
Grupo de recursos:
$resourceGroupName = "<resource group name>"
Nome do tópico da Grade de Eventos:
$topicName = "<topic name>"
Execute os seguintes comandos para obter o ponto de extremidade e as chaves para o tópico:
$endpoint = (Get-AzEventGridTopic -ResourceGroupName $resourceGroupName -Name $topicName).Endpoint $keys = Get-AzEventGridTopicKey -ResourceGroupName $resourceGroupName -Name $topicName
Prepare o evento. Copie e execute as instruções na janela do Cloud Shell.
$eventID = Get-Random 99999 #Date format should be SortableDateTimePattern (ISO 8601) $eventDate = Get-Date -Format s #Construct body using Hashtable $htbody = @{ id= $eventID eventType="recordInserted" subject="myapp/vehicles/motorcycles" eventTime= $eventDate data= @{ make="Ducati" model="Monster" } dataVersion="1.0" } #Use ConvertTo-Json to convert event body from Hashtable to JSON Object #Append square brackets to the converted JSON payload since they are expected in the event's JSON payload syntax $body = "["+(ConvertTo-Json $htbody)+"]"
Use o cmdlet Invoke-WebRequest para enviar o evento.
Invoke-WebRequest -Uri $endpoint -Method POST -Body $body -Headers @{"aeg-sas-key" = $keys.Key1}
Verificar no Visualizador de Grade de Eventos
Acionou o evento e o Event Grid enviou a mensagem para o ponto final que configurou ao subscrever. Verifique a aplicação Web para ver o evento que acabámos de enviar.
Clean up resources (Limpar recursos)
Se quiser continuar a trabalhar com este evento, não limpe os recursos criados neste artigo. Caso contrário, elimine os recursos que criou neste artigo.
Selecione Grupos de Recursos no menu à esquerda. Se não o vir no menu esquerdo, selecione Todos os Serviços no menu esquerdo e selecione Grupos de Recursos.
Selecione o grupo de recursos para iniciar a página Grupo de Recursos.
Selecione Excluir grupo de recursos na barra de ferramentas.
Confirme a exclusão inserindo o nome do grupo de recursos e selecione Excluir.
O outro grupo de recursos que você vê na imagem foi criado e usado pela janela do Cloud Shell. Exclua-o se você não planeja usar a janela do Cloud Shell mais tarde.
Próximos passos
Agora que sabe como criar tópicos personalizados e subscrições de eventos, saiba mais sobre o que o Event Grid pode ajudá-lo a fazer:
- Sobre o Event Grid
- Encaminhar eventos de armazenamento de Blobs para um ponto final Web personalizado
- Monitorizar alterações de máquina virtual com o Azure Event Grid e Logic Apps
- Transmitir macrodados em fluxo para um armazém de dados
Consulte os exemplos a seguir para saber mais sobre como publicar e consumir eventos da Grade de Eventos usando diferentes linguagens de programação.