Share via


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. Screenshot that shows an example of Try It for Azure Cloud Shell.
Aceda a https://shell.azure.com ou selecione o botão Iniciar Cloud Shell para abrir o Cloud Shell no browser. Button to launch Azure Cloud Shell.
Selecione o botão Cloud Shell na barra de menus, na parte direita do portal do Azure. Screenshot that shows the Cloud Shell button in the Azure portal

Para usar o Azure Cloud Shell:

  1. Inicie o Cloud Shell.

  2. Selecione o botão Copiar em um bloco de código (ou bloco de comando) para copiar o código ou comando.

  3. 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.

  4. 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

  1. 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
    
  2. 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.

Azure Event Grid Viewer.

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: