Encaminhar eventos personalizados ao ponto de extremidade 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 eventos facilmente em vários serviços e aplicativos diferentes do Azure. Ela simplifica a criação de aplicativos orientados a eventos e sem servidor. Para uma visão geral do serviço, consulte Visão geral da Grade de Eventos.
Neste artigo, você usa o portal do Azure para fazer as seguintes tarefas:
- Criar um tópico personalizado.
- Assinar o tópico personalizado.
- Disparar o evento.
- Exibir o resultado. Normalmente, você envia eventos para um ponto de extremidade que processa os dados de evento e realiza ações. No entanto, para simplificar este artigo, você enviará os eventos para um aplicativo Web que coleta e exibe as mensagens.
Pré-requisitos
Caso você não tenha uma assinatura 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ê tenha usado a Grade de Eventos antes, precisará registrar o provedor de recursos da Grade de Eventos. Se você tiver usado a Grade de Eventos antes, pule para a próxima seção.
No portal do Azure, siga as etapas abaixo:
No menu à esquerda, selecione Assinaturas.
Selecione a assinatura que você deseja usar para a Grade de Eventos na lista de assinaturas.
Na página Assinatura, selecione Provedores de recursos na seção Configurações no menu à esquerda.
Pesquise por Microsoft.EventGrid e confirme que o Status é Não registrado.
Selecione Microsoft.EventGrid na lista de provedores.
Selecione Registrar na barra de comandos.
Atualize para verificar se o status do 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.
Entre no Portal do Azure.
Na barra de pesquisa no 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 sua assinaturado Azure.
Selecione um grupo de recursos existente ou selecione Criar novo e insira um nome para o grupo de recursos.
Informe um nome exclusivo para o tópico personalizado. O nome do tópico deve ser exclusivo, pois é representado por uma entrada DNS. Não use o nome mostrado na imagem. Em vez disso, crie seu próprio nome – ele deve ter entre 3 e 50 caracteres e conter apenas valores a-z, A-Z, 0-9 e "-".
Selecione um local para o tópico da Grade de Eventos.
Selecione Revisar + criar na parte inferior da página.
Na guia Examinar + criar da página Criar tópico, selecione Criar.
Depois que a implantação for realizada com sucesso, selecione Ir para o recurso para navegar até a página do Tópico da Grade de Eventos do tópico. Mantenha essa página aberta. Você a usará posteriormente no início rápido.
Observação
Para manter o início rápido simples, você usará apenas a página Básico 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 de extremidade de mensagem
Antes de criar uma assinatura para o tópico personalizado, crie um ponto de extremidade para a mensagem de evento. Normalmente, o ponto de extremidade executa ações com base nos dados de evento. Para simplificar esse início rápido, implante um aplicativo web predefinido que exiba as mensagens do evento. A solução implantada inclui um plano do Serviço de Aplicativo, um aplicativo Web do Aplicativo do Serviço de e o código-fonte do GitHub.
Na página do artigo, selecione Implantar no Azure para implantar a solução na sua assinatura. No portal do Azure, forneça os valores para os parâmetros.
Na página Implantação personalizada, realize as seguintes etapas:
Em Grupo de recursos, selecione um grupo de recursos existente ou crie um.
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 usar para hospedar o aplicativo Web.
Selecione Examinar + criar.
Na página Examinar + criar escolha Criar.
A implantação pode levar alguns minutos para ser concluída. 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 para seu aplicativo Web, selecione a URL para navegar até o site da Web. A URL deve estar neste formato:
https://<your-site-name>.azurewebsites.net
.Confirme que você vê o site, mas que nenhum evento foi postado nele ainda.
Inscrever-se em um tópico personalizado
Você assina um tópico da Grade de Eventos para indicar à Grade de Eventos quais eventos você deseja acompanhar e para onde enviá-los.
Agora, na página Tópico de Grade de Eventos para seu tópico personalizado, selecione + Assinatura de Evento na barra de ferramentas.
Na página Criar Assinatura de Eventos, siga estas etapas:
Insira um nome para a assinatura de evento.
Selecione Web Hook para o Tipo de ponto de extremidade.
Escolha Selecionar um ponto de extremidade.
Para o ponto de extremidade do web hook, forneça a URL do seu aplicativo Web e adicione
api/updates
à URL da página inicial. Selecione Confirmar seleção.Volte para a página Criar Assinatura de Evento e selecione Criar.
Exiba novamente o seu aplicativo Web e observe que um evento de validação de assinatura foi enviado a ele. Selecione o ícone de olho para expandir os dados de evento. A Grade de Eventos envia o evento de validação de modo que o ponto de extremidade possa verificar se ele deseja receber os dados de evento. O aplicativo Web inclui o código para validar a assinatura.
Enviar um evento para o tópico
Agora, vamos disparar um evento para ver como a Grade de Eventos distribui a mensagem para o ponto de extremidade. Use a CLI do Azure ou o PowerShell para enviar um evento de teste para seu tópico personalizado. Normalmente, um aplicativo ou serviço do Azure enviaria os dados de evento.
O primeiro exemplo usa a CLI do Azure. Ele obtém a URL e a chave do tópico personalizado, além dos dados de evento de exemplo. Use o nome do tópico personalizado para <topic name>
. Ele cria dados de evento de exemplo. O elemento data
do JSON é a carga do evento. Qualquer JSON bem formado pode ficar nesse campo. Você também pode usar o campo de assunto para roteamento e filtragem avançados. CURL é um utilitário que envia solicitações 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 exemplos de eventos neste ponto de extremidade do 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. Ela é a chave primária do tópico da Grade de Eventos. Para obter essa chave do portal do Azure, alterne para a guia Chaves de acesso da página Tópico da Grade de Eventos. Para postar um evento em um tópico personalizado, você precisará da chave de acesso.
key=$(az eventgrid topic key list --name <topic name> -g <resource group name> --query "key1" --output tsv)
Copie a seguinte instrução com a definição do 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 publicar o evento: No comando, o cabeçalho
aeg-sas-key
é 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 (como alternativa, acesse
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. Veja a imagem da janela Cloud Shell de exemplo na seção da CLI do Azure.
Defina as variáveis a seguir. 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}
Verifique se no Visualizador de Grade de Eventos
Você disparou o evento, e a Grade de Eventos enviou a mensagem para o ponto de extremidade configurado durante a assinatura. Exiba seu aplicativo Web para ver o evento que você acabou de enviar.
Limpar os recursos
Caso planeje continuar a trabalhar com esse evento, não limpe os recursos criados neste artigo. Caso contrário, exclua os recursos criados neste artigo.
Selecione Grupos de Recursos no menu esquerdo. Se você não o visualizar no menu à esquerda, selecione Todos os Serviços no menu à esquerda 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óximas etapas
Agora que você sabe como criar tópicos e assinaturas de evento personalizados, saiba mais sobre como a Grade de Eventos pode ajudá-lo:
- Sobre a Grade de Eventos
- Rotear eventos do Armazenamento de Blobs para um ponto de extremidade da Web personalizado
- Monitorar alterações de máquina virtual com a Grade de Eventos do Azure e os Aplicativos Lógicos
- Transmitir Big Data para um data warehouse
Confira os exemplos a seguir para saber mais sobre como publicar e consumir eventos na Grade de Eventos usando diferentes linguagens de programação.