Usar a Grade de Eventos para notificações de alteração de dados da Configuração do Aplicativo
Neste artigo, você aprenderá a configurar assinaturas de eventos de Configuração de Aplicativo do Azure para enviar eventos de modificação de chave-valor para um ponto de extremidade da Web. Os utilizadores da Configuração de Aplicações do Azure podem subscrever eventos emitidos sempre que os valores-chave são modificados. Esses eventos podem acionar ganchos da Web, Azure Functions, Filas de Armazenamento do Azure ou qualquer outro manipulador de eventos suportado pela Grade de Eventos do Azure. Normalmente, envia eventos para um ponto final que processa os dados de eventos e efetua ações. No entanto, para simplificar este artigo, vai enviar eventos para uma aplicação Web que recolhe e apresenta as mensagens.
Pré-requisitos
- Subscrição do Azure - crie uma gratuitamente. Opcionalmente, você pode usar o Azure Cloud Shell.
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, este artigo 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 do Event Grid são recursos do Azure e têm de ser colocados 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 az group create.
O exemplo a seguir cria um grupo de recursos nomeado <resource_group_name>
no local westus. Substitua <resource_group_name>
por um nome exclusivo para o seu grupo de recursos.
az group create --name <resource_group_name> --location westus
Criar uma loja de configuração de aplicativos
Substitua <appconfig_name>
por um nome exclusivo para seu repositório de configuração e <resource_group_name>
pelo grupo de recursos criado anteriormente. O nome deve ser exclusivo porque é usado como um nome DNS.
az appconfig create \
--name <appconfig_name> \
--location westus \
--resource-group <resource_group_name> \
--sku free
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/master/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.
Subscrever a sua App Configuration Store
Subscreva um tópico para comunicar ao Event Grid os eventos que pretende controlar e para onde enviar esses eventos. O exemplo a seguir se inscreve na Configuração do Aplicativo 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 <appconfig_name>
, utilize o valor que criou anteriormente.
O ponto final para a aplicação Web tem de incluir o sufixo /api/updates/
.
appconfigId=$(az appconfig show --name <appconfig_name> --resource-group <resource_group_name> --query id --output tsv)
endpoint=https://$sitename.azurewebsites.net/api/updates
az eventgrid event-subscription create \
--source-resource-id $appconfigId \
--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.
Acionar um evento de Configuração do Aplicativo
Agora, vamos acionar um evento para ver como o Event Grid distribui a mensagem para o ponto final. Crie um valor-chave usando o <appconfig_name>
de anteriormente.
az appconfig kv set --name <appconfig_name> --key Foo --value Bar --yes
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": "00000000-0000-0000-0000-000000000000",
"topic": "/subscriptions/{subscription-id}/resourceGroups/eventDemoGroup/providers/microsoft.appconfiguration/configurationstores/{appconfig-name}",
"subject": "https://{appconfig-name}.azconfig.io/kv/Foo",
"data": {
"key": "Foo",
"etag": "a1LIDdNEIV6wCnfv3xaip7fMXD3",
"syncToken":"zAJw6V16=Njo1IzMzMjE3MzA=;sn=3321730"
},
"eventType": "Microsoft.AppConfiguration.KeyValueModified",
"eventTime": "2019-05-31T18:59:54Z",
"dataVersion": "1",
"metadataVersion": "1"
}]
Clean up resources (Limpar recursos)
Se planeia continuar a trabalhar com esta Configuração de Aplicação e subscrição de eventos, não limpe os recursos criados neste artigo. Se não quiser continuar, utilize o comando seguinte para eliminar os recursos que criou neste artigo.
Substitua <resource_group_name>
pelo grupo de recursos que criou acima.
az group delete --name <resource_group_name>
Próximos passos
Agora que você já sabe como criar tópicos e assinaturas de eventos, saiba mais sobre eventos de valor-chave e o que a Grade de Eventos pode ajudá-lo a fazer: