Guia de início rápido: rotear eventos personalizados para Hubs de Eventos do Azure com a CLI do Azure e a Grade de Eventos
A Grade de Eventos do Azure é um agente de eventos altamente escalável e sem servidor que você pode usar para integrar aplicativos usando eventos. A Grade de Eventos entrega eventos a manipuladores de eventos com suporte e os Hubs de Eventos do Azure são um deles. Neste artigo, você usa a CLI do Azure para as seguintes etapas:
- Crie um tópico personalizado do Event Grid.
- Crie uma assinatura dos Hubs de Eventos do Azure para o tópico personalizado.
- Envie exemplos de eventos para o tópico personalizado.
- Verifique se esses eventos são entregues ao hub de eventos.
Se não tiver uma subscrição do Azure, crie uma conta gratuita do Azure antes de começar.
Criar um grupo de recursos
Os tópicos do Event Grid são recursos do Azure e têm de ser colocados num grupo de recursos do Azure. Um grupo de recursos é uma coleção lógica na qual os recursos do Azure são implementados e geridos.
Crie um grupo de recursos com o comando az group create. O exemplo seguinte cria um grupo de recursos com o nome gridResourceGroup na localização westus2.
Nota
Selecione Experimentar ao lado do exemplo da CLI para iniciar o Cloud Shell no painel direito. Selecione o botão Copiar para copiar o comando, cole-o na janela do Cloud Shell e pressione ENTER para executar o comando.
az group create --name gridResourceGroup --location westus2
Habilitar o provedor de recursos da Grade de Eventos
Se você não tiver usado anteriormente a Grade de Eventos em sua assinatura do Azure, talvez seja necessário registrar o provedor de recursos da Grade de Eventos. Execute o seguinte comando para registar o fornecedor:
az provider register --namespace Microsoft.EventGrid
Pode demorar algum tempo até que o registo termine. Para verificar o status, execute o seguinte comando:
az provider show --namespace Microsoft.EventGrid --query "registrationState"
Quando
registrationState
estáRegistered
, está pronto para continuar.
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. O exemplo seguinte cria o tópico personalizado no seu grupo de recursos. Substitua <topic_name>
por um nome exclusivo para o seu tópico personalizado. O nome do tópico Grade de Eventos deve ser exclusivo porque é representado por uma entrada DNS (Sistema de Nomes de Domínio).
Especifique um nome para o tópico.
topicname="<TOPIC NAME>"
Execute o seguinte comando para criar o tópico.
az eventgrid topic create --name $topicname -l westus2 -g gridResourceGroup
Criar um hub de eventos
Antes de subscrever o tópico personalizado, vamos criar o ponto final para a mensagem de evento. Cria um hub de eventos para a recolha de eventos.
Especifique um nome exclusivo para o namespace Hubs de Eventos.
namespace="<EVENT HUBS NAMESPACE NAME>"
Execute os comandos a seguir para criar um namespace de Hubs de Eventos e um hub de eventos nomeado
demohub
nesse namespace.hubname=demohub az eventhubs namespace create --name $namespace --resource-group gridResourceGroup az eventhubs eventhub create --name $hubname --namespace-name $namespace --resource-group gridResourceGroup
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. O exemplo a seguir se inscreve no tópico personalizado que você criou e passa a ID de recurso do hub de eventos para o ponto de extremidade. O ponto final está no formato:
/subscriptions/<AZURE SUBSCRIPTION ID>/resourceGroups/<RESOURCE GROUP NAME>/providers/Microsoft.EventHub/namespaces/<NAMESPACE NAME>/eventhubs/<EVENT HUB NAME>
O script a seguir obtém a ID do recurso para o hub de eventos e se inscreve em um tópico da Grade de Eventos. Define o tipo de ponto final como eventhub
e utiliza o ID do hub de eventos para o ponto final.
hubid=$(az eventhubs eventhub show --name $hubname --namespace-name $namespace --resource-group gridResourceGroup --query id --output tsv)
topicid=$(az eventgrid topic show --name $topicname -g gridResourceGroup --query id --output tsv)
az eventgrid event-subscription create \
--source-resource-id $topicid \
--name subtoeventhub \
--endpoint-type eventhub \
--endpoint $hubid
A conta que cria a subscrição de evento deve ter acesso de escrita ao hub de eventos.
Enviar um evento para o tópico personalizado
Vamos acionar um evento para ver como o Event Grid distribui a mensagem para o ponto final. Em primeiro lugar, vamos obter o URL e a chave do tópico personalizado.
endpoint=$(az eventgrid topic show --name $topicname -g gridResourceGroup --query "endpoint" --output tsv)
key=$(az eventgrid topic key list --name $topicname -g gridResourceGroup --query "key1" --output tsv)
Para simplificar este artigo, vai utilizar dados do evento de exemplo para enviar para o tópico personalizado. Normalmente, uma aplicação ou serviço do Azure enviaria os dados do evento. CURL é um utilitário que envia os pedidos HTTP. Neste artigo, utilize o CURL para enviar o evento para o tópico personalizado. O exemplo a seguir envia três eventos para o tópico Event Grid:
for i in 1 2 3
do
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"} ]'
curl -X POST -H "aeg-sas-key: $key" -d "$event" $endpoint
done
Na página Visão geral do namespace Hubs de Eventos no portal do Azure, observe que a Grade de Eventos enviou esses três eventos para o hub de eventos. Você verá o mesmo gráfico na página Visão geral da página de instância dos demohub
Hubs de Eventos.
Normalmente, cria uma aplicação que obtém os eventos do hub de eventos. Para criar uma aplicação que obtém mensagens de um hub de eventos, veja:
- Começar a receber mensagens com o Anfitrião do Processador de Eventos em .NET Standard
- Receber eventos de Hubs de Eventos do Azure com o Java
- Receber eventos dos Hubs de Eventos com o Apache Storm
Clean up resources (Limpar recursos)
Se quiser continuar a trabalhar com este evento, não limpe os recursos criados neste artigo. Caso contrário, utilize o comando seguinte para eliminar os recursos que criou neste artigo.
az group delete --name gridResourceGroup
Próximos passos
Agora que sabe como criar tópicos 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.