Guia de início rápido: rotear eventos do Cache Redis do Azure para o ponto de extremidade da Web com a CLI do Azure
O Azure Event Grid é um serviço de eventos para a cloud. Neste início rápido, você usará a CLI do Azure para assinar eventos do Cache do Azure para Redis, acionar um evento e exibir os resultados.
Normalmente, envia eventos para um ponto final que processa os dados de eventos e efetua ações. No entanto, para simplificar esse início rápido, você enviará eventos para um aplicativo Web que coletará e exibirá as mensagens. Ao concluir as etapas descritas neste início rápido, você verá que os dados do evento foram enviados para o aplicativo Web.
Se não tiver uma subscrição do Azure, crie uma conta gratuita do Azure antes de começar.
Azure Cloud Shell
O Azure aloja o Azure Cloud Shell, um ambiente de shell interativo que pode utilizar através do seu browser. Pode utilizar o Bash ou o PowerShell com o Cloud Shell para trabalhar com os serviços do Azure. Você pode usar os comandos pré-instalados do Cloud Shell para executar o código neste artigo, sem precisar instalar nada em seu ambiente local.
Para iniciar o Azure Cloud Shell:
Opção | Exemplo/Ligação |
---|---|
Selecione Experimentar no canto superior direito de um código ou bloco de comandos. Selecionar Experimentar não copia automaticamente o código ou comando para o Cloud Shell. | |
Aceda a https://shell.azure.com ou selecione o botão Iniciar Cloud Shell para abrir o Cloud Shell no browser. | |
Selecione o botão Cloud Shell na barra de menus, na parte direita do portal do Azure. |
Para usar o Azure Cloud Shell:
Inicie o Cloud Shell.
Selecione o botão Copiar em um bloco de código (ou bloco de comando) para copiar o código ou comando.
Cole o código ou comando na sessão do Cloud Shell selecionando Ctrl+Shift+V no Windows e Linux ou selecionando Cmd+Shift+V no macOS.
Selecione Enter para executar o código ou comando.
Se você optar por instalar e usar a CLI localmente, esse início rápido exigirá que você esteja executando a versão mais recente da CLI do Azure (2.0.70 ou posterior). Para localizar a versão, execute az --version
. Se precisar de instalar ou atualizar, veja Install Azure CLI (Instalar o Azure CLI).
Se não estiver a utilizar o Cloud Shell, primeiro tem de iniciar sessão com az login
.
Criar um grupo de recursos
Os tópicos da Grade de Eventos são implantados como recursos individuais do Azure e devem ser provisionados em um grupo de recursos do Azure. Um grupo de recursos é uma coleção lógica na qual os recursos do Azure são implantados e gerenciados.
Crie um grupo de recursos com o comando az group create.
O exemplo seguinte cria um grupo de recursos com o nome <resource_group_name>
na localização westcentralus. Substitua <resource_group_name>
por um nome exclusivo para o seu grupo de recursos.
az group create --name <resource_group_name> --location westcentralus
Criar uma instância de cache
#/bin/bash
# Create a Basic C0 (256 MB) Azure Cache for Redis instance
az redis create --name <cache_name> --resource-group <resource_group_name> --location westcentralus --sku Basic --vm-size C0
Criar um ponto final de mensagem
Antes de subscrever o tópico, vamos criar o ponto final para a mensagem de evento. Normalmente, o ponto final executa as ações com base nos dados do evento. Para simplificar este início rápido, vai implementar uma aplicação Web pré-criada para apresentar as mensagens de 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.
Substitua <your-site-name>
por um nome exclusivo para a aplicação Web. O nome da aplicação Web deve ser exclusivo, porque faz parte da entrada DNS.
sitename=<your-site-name>
az deployment group create \
--resource-group <resource_group_name> \
--template-uri "https://raw.githubusercontent.com/Azure-Samples/azure-event-grid-viewer/main/azuredeploy.json" \
--parameters siteName=$sitename hostingPlanName=viewerhost
A implementação pode demorar alguns minutos. Após a implementação ter sido concluída com êxito, verifique a aplicação Web para verificar se está em execução. Num browser, navegue para: https://<your-site-name>.azurewebsites.net
Deverá ver o site sem mensagens atualmente apresentadas.
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.
Inscrever-se na instância do Cache do Azure para Redis
Nesta etapa, você se inscreverá em um tópico para informar à Grade de Eventos quais eventos deseja acompanhar e para onde enviá-los. O exemplo a seguir se inscreve na instância do Cache Redis do Azure que você criou e passa a URL do seu aplicativo Web como o ponto de extremidade para notificação de eventos. Substitua <event_subscription_name>
por um nome para a subscrição de eventos. Para <resource_group_name>
e <cache_name>
, utilize o valor que criou anteriormente.
O ponto final para a aplicação Web tem de incluir o sufixo /api/updates/
.
cacheId=$(az redis show --name <cache_name> --resource-group <resource_group_name> --query id --subscription <subscription_id> --output tsv)
endpoint=https://$sitename.azurewebsites.net/api/updates
az eventgrid event-subscription create \
--source-resource-id $cacheId \
--name <event_subscription_name> \
--endpoint $endpoint
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.
Disparar um evento do Cache Redis do Azure
Agora, vamos acionar um evento para ver como o Event Grid distribui a mensagem para o ponto final. Vamos exportar os dados armazenados em seu Cache do Azure para instância Redis. Novamente, use os valores para {cache_name}
e {resource_group_name}
você criou anteriormente.
az redis export --ids '/subscriptions/{subscription_id}/resourceGroups/{resource_group_name}/providers/Microsoft.Cache/Redis/{cache_name}' \
--prefix '<prefix_for_exported_files>' \
--container '<SAS_url>'
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.
[{
"id": "e1ceb52d-575c-4ce4-8056-115dec723cff",
"eventType": "Microsoft.Cache.ExportRDBCompleted",
"topic": "/subscriptions/{subscription_id}/resourceGroups/{resource_group_name}/providers/Microsoft.Cache/Redis/{cache_name}",
"data": {
"name": "ExportRDBCompleted",
"timestamp": "2020-12-10T18:07:54.4937063+00:00",
"status": "Succeeded"
},
"subject": "ExportRDBCompleted",
"dataversion": "1.0",
"metadataVersion": "1",
"eventTime": "2020-12-10T18:07:54.4937063+00:00"
}]
Clean up resources (Limpar recursos)
Se você planeja continuar trabalhando com essa instância do Cache do Azure para Redis e assinatura de evento, não limpe os recursos criados neste início rápido. Se você não planeja continuar, use o seguinte comando para excluir os recursos criados neste início rápido.
Substitua <resource_group_name>
pelo grupo de recursos que criou acima.
az group delete --name <resource_group_name>
Próximos passos
Agora que você sabe como criar tópicos e assinaturas de eventos, saiba mais sobre o Cache do Azure para Eventos Redis e o que a Grade de Eventos pode ajudá-lo a fazer: