Share via


Início rápido: Encaminhar eventos do Cache do Azure para Redis para o ponto de extremidade da Web com a CLI do Azure

A Grade de Eventos do Azure é um serviço de eventos para a nuvem. Neste guia de início rápido, você usará a CLI do Azure para assinar eventos do Cache do Azure para Redis, disparar um evento e ver os resultados.

Normalmente, você envia eventos para um ponto de extremidade que processa os dados de evento e realiza ações. No entanto, para simplificar este guia de início rápido, você enviará eventos para um aplicativo Web que coletará e exibirá as mensagens. Quando você concluir as etapas descritas neste guia de início rápido, verá que os dados do evento foram enviados ao aplicativo Web.

Caso você não tenha uma assinatura do Azure, crie uma conta gratuita do Azure antes de começar.

Azure Cloud Shell

O Azure hospeda o Azure Cloud Shell, um ambiente de shell interativo que pode ser usado por meio do navegador. É possível usar o bash ou o PowerShell com o Cloud Shell para trabalhar com os serviços do Azure. É possível usar os comandos pré-instalados do Cloud Shell para executar o código neste artigo, sem precisar instalar nada no seu ambiente local.

Para iniciar o Azure Cloud Shell:

Opção Exemplo/Link
Selecione Experimentar no canto superior direito de um bloco de código ou de comando. Selecionar Experimentar não copia automaticamente o código nem o comando para o Cloud Shell. Screenshot that shows an example of Try It for Azure Cloud Shell.
Acesse https://shell.azure.com ou selecione o botão Iniciar o Cloud Shell para abri-lo no navegador. Button to launch Azure Cloud Shell.
Selecione o botão Cloud Shell na barra de menus no canto superior direito 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 o comando.

  3. Cole o código ou comando na sessão do Cloud Shell selecionando Ctrl+Shift+V no Windows e no Linux, ou selecionando Cmd+Shift+V no macOS.

  4. Selecione Enter para executar o código ou o comando.

Se você optar por instalar e usar a CLI localmente, este guia de início rápido exigirá que você esteja executando a última versão da CLI do Azure (2.0.70 ou posterior). Para saber qual é a versão, execute az --version. Se você precisa instalar ou atualizar, consulte Instalar a CLI do Azure.

Caso não esteja usando o Cloud Shell, primeiro você deve entrar usando az login.

Criar um grupo de recursos

Os tópicos da Grade de Eventos são implantados como recursos individuais do Azure e precisam 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 a seguir cria um grupo de recursos chamado <resource_group_name> na localização westcentralus. Substitua <resource_group_name> por um nome exclusivo para o 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 de extremidade de mensagem

Antes de assinar o tópico, vamos criar o ponto de extremidade para a mensagem do evento. Normalmente, o ponto de extremidade executa ações com base nos dados de evento. Para simplificar este início rápido, você implanta um aplicativo Web criado previamente que exibe as mensagens de eventos. 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.

Substitua <your-site-name> por um nome exclusivo para o aplicativo Web. O nome do aplicativo Web deve ser exclusivo, pois é parte de uma 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 implantação pode levar alguns minutos para ser concluída. Depois que a implantação for bem-sucedida, exiba seu aplicativo Web para garantir que ele esteja em execução. Em um navegador da Web, navegue até: https://<your-site-name>.azurewebsites.net

Você deve ver o site sem mensagens exibidas no momento.

Habilitar o provedor de recursos da Grade de Eventos

  1. Se você ainda não tiver usado a Grade de Eventos em sua assinatura do Azure, talvez seja necessário registrar o provedor de recursos desse serviço. Execute o seguinte comando para registrar o provedor:

    az provider register --namespace Microsoft.EventGrid
    
  2. A conclusão do registro pode demorar um pouco. Para verificar o status, execute o seguinte comando:

    az provider show --namespace Microsoft.EventGrid --query "registrationState"
    

    Quando registrationState for Registered, você está pronto para continuar.

Assinar a sua instância do Cache do Azure para Redis

Nesta etapa, você assinará um tópico para indicar à Grade de Eventos quais eventos deseja acompanhar e para que local esses eventos serão enviados. O exemplo a seguir assina a instância do Cache do Azure para Redis criada e transmite a URL do aplicativo Web como o ponto de extremidade para notificação de eventos. Substitua <event_subscription_name> por um nome para a assinatura de evento. Em <resource_group_name> e <cache_name>, use os valores criados anteriormente.

O ponto de extremidade para seu aplicativo Web deve 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

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.

Azure Event Grid Viewer.

Disparar um evento do Cache do Azure para Redis

Agora, vamos disparar um evento para ver como a Grade de Eventos distribui a mensagem para o ponto de extremidade. Vamos exportar os dados armazenados na sua instância do Cache do Azure para Redis. Novamente, use os valores de {cache_name} e {resource_group_name} criados 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>'  

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.

[{
"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"
}]

Limpar os recursos

Se você pretende continuar trabalhando com essa instância do Cache do Azure para Redis e a assinatura de evento, não limpe os recursos criados neste guia de início rápido. Caso contrário, use o comando a seguir para excluir os recursos criados neste guia de início rápido.

Substitua <resource_group_name> pelo recurso de grupo criado acima.

az group delete --name <resource_group_name>

Próximas etapas

Agora que você sabe como criar tópicos e assinaturas de eventos, saiba mais sobre os eventos do Cache do Azure para Redis e como a Grade de Eventos pode ajudar você: