Partilhar via


Introdução Rápida: Roteie eventos do Azure Cache para Redis para um endpoint Web com PowerShell

Importante

O Cache do Azure para Redis anunciou seu cronograma de desativação para todas as SKUs. Recomendamos mover as suas instâncias existentes do Azure Cache para Redis para Azure Managed Redis o mais rápido possível.

Para mais detalhes sobre a aposentadoria:

O Azure Event Grid é um serviço de eventos para a cloud. Neste início rápido, você usará o Azure PowerShell 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.

Configuração

Este início rápido requer que você esteja executando a versão mais recente do Azure PowerShell. Se precisar de instalar ou atualizar, veja Instalar e configurar o Azure PowerShell.

Iniciar sessão no Azure

Entre na sua assinatura do Azure com o Connect-AzAccount comando e siga as instruções na tela para autenticar.

Connect-AzAccount

Este exemplo usa westus2 e armazena a seleção em uma variável para uso em todo o texto.

$location = "westus2"

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 New-AzResourceGroup.

O exemplo seguinte cria um grupo de recursos com o nome gridResourceGroup na localização westus2.

$resourceGroup = "gridResourceGroup"
New-AzResourceGroup -Name $resourceGroup -Location $location

Criar uma instância do Cache do Azure para Redis

New-AzRedisCache
   -ResourceGroupName <String>
   -Name <String>
   -Location <String>
   [-Size <String>]
   [-Sku <String>]
   [-RedisConfiguration <Hashtable>]
   [-EnableNonSslPort <Boolean>]
   [-TenantSettings <Hashtable>]
   [-ShardCount <Int32>]
   [-MinimumTlsVersion <String>]
   [-SubnetId <String>]
   [-StaticIP <String>]
   [-Tag <Hashtable>]
   [-Zone <String[]>]
   [-DefaultProfile <IAzureContextContainer>]
   [-WhatIf]
   [-Confirm]
   [<CommonParameters>]

Para obter mais informações sobre como criar uma instância de cache no PowerShell, consulte a referência do Azure PowerShell.

Criar um ponto final de mensagem

Antes de subscrever o tópico, vamos criar o ponto final para a mensagem de evento. Normalmente, o endpoint executa 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>"

New-AzResourceGroupDeployment `
  -ResourceGroupName $resourceGroup `
  -TemplateUri "https://raw.githubusercontent.com/Azure-Samples/azure-event-grid-viewer/main/azuredeploy.json" `
  -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 navegador web, vá para: https://<your-site-name>.azurewebsites.net

Você deverá ver o site sem mensagens exibidas atualmente.

Site vazio do Visualizador de Grade de Eventos.

Inscrever-se no evento Cache do Azure para Redis

Nesta etapa, você se inscreverá em um tópico para informar à Grade de Eventos quais eventos deseja acompanhar. O exemplo a seguir se inscreve na instância de cache que você criou e passa a URL do seu aplicativo Web como o ponto de extremidade para notificação de eventos. O ponto final para a aplicação Web tem de incluir o sufixo /api/updates/.

$cacheId = (Get-AzRedisCache -ResourceGroupName $resourceGroup -Name $cacheName).Id
$endpoint="https://$sitename.azurewebsites.net/api/updates"

New-AzEventGridSubscription `
  -EventSubscriptionName <event_subscription_name> `
  -Endpoint $endpoint `
  -ResourceId $cacheId

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.

Visualizador de Grade de Eventos do Azure.

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.

Import-AzRedisCache
      [-ResourceGroupName <String>]
      -Name <String>
      -Files <String[]>
      [-Format <String>]
      [-Force]
      [-PassThru]
      [-DefaultProfile <IAzureContextContainer>]
      [-WhatIf]
      [-Confirm]
      [<CommonParameters>]

Para obter mais informações sobre como importar no PowerShell, consulte a referência do Azure PowerShell.

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.ImportRDBCompleted",
  "topic": "/subscriptions/{subscription_id}/resourceGroups/{resource_group_name}/providers/Microsoft.Cache/Redis/{cache_name}",
  "data": {
    "name": "ImportRDBCompleted",
    "timestamp": "2020-12-10T18:07:54.4937063+00:00",
    "status": "Succeeded"
  },
  "subject": "ImportRDBCompleted",
  "dataversion": "1.0",
  "metadataVersion": "1",
  "eventTime": "2020-12-10T18:07:54.4937063+00:00"
}]

Limpeza de recursos

Se planeares continuar a trabalhar com esta instância do Azure Cache para Redis e a subscrição de eventos, não elimine os recursos criados neste guia de início rápido. Se você não planeja continuar, use o comando a seguir para excluir os recursos criados neste início rápido.

Remove-AzResourceGroup -Name $resourceGroup

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: