Share via


Início Rápido: Encaminhar eventos Cache do Azure para Redis para o ponto final Web com o PowerShell

O Azure Event Grid é um serviço de eventos para a cloud. Neste início rápido, irá utilizar Azure PowerShell para subscrever Cache do Azure para Redis eventos, acionar um evento e ver os resultados.

Normalmente, envia eventos para um ponto final que processa os dados de eventos e efetua ações. No entanto, para simplificar este início rápido, irá enviar eventos para uma aplicação Web que irá recolher e apresentar as mensagens. Quando concluir os passos descritos neste início rápido, verá que os dados do evento foram enviados para a aplicação Web.

Configuração

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

Iniciar sessão no Azure

Inicie sessão na sua subscrição do Azure com o Connect-AzAccount comando e siga as instruções apresentadas no ecrã para se autenticar.

Connect-AzAccount

Este exemplo utiliza westus2 e armazena a seleção numa variável para utilização.

$location = "westus2"

Criar um grupo de recursos

Os tópicos do Event Grid são implementados como recursos individuais do Azure e têm de ser aprovisionados 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 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, veja a referência 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 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>"

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 browser, navegue para: https://<your-site-name>.azurewebsites.net

Deverá ver o site sem mensagens atualmente apresentadas.

Site do Visualizador do Event Grid vazio.

Subscrever o evento de Cache do Azure para Redis

Neste passo, irá subscrever um tópico para indicar ao Event Grid quais os eventos que pretende controlar. O exemplo seguinte subscreve a instância de cache que criou e transmite o URL da sua aplicação Web como o ponto final da notificação de evento. 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.

Azure Event Grid Viewer.

Acionar um evento a partir de Cache do Azure para Redis

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 a importação no PowerShell, veja a referência 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"
}]

Limpar os recursos

Se pretender continuar a trabalhar com este Cache do Azure para Redis subscrição de eventos e instâncias, não limpe os recursos criados neste início rápido. Se não quiser continuar, utilize o seguinte comando para eliminar os recursos que criou neste início rápido.

Remove-AzResourceGroup -Name $resourceGroup

Passos seguintes

Agora que sabe como criar tópicos e subscrições de eventos, saiba mais sobre Cache do Azure para Redis eventos e o que o Event Grid pode ajudar a fazer: