Usar a Grade de Eventos para notificações de alterações de dados da Configuração de Aplicativos
Neste artigo, você aprenderá a configurar assinaturas de eventos da Configuração de Aplicativos do Azure para enviar eventos de modificação de chave-valor para um ponto de extremidade da Web. Os usuários da Configuração de Aplicativos do Azure podem assinar eventos que são emitidos sempre que os pares chave-valor são modificados. Esses eventos podem disparar web hooks, o Azure Functions, as Filas do Armazenamento do Azure ou qualquer outro manipulador de eventos que seja compatível com a Grade de Eventos do Azure. Normalmente, você envia eventos para um ponto de extremidade que processa os dados de evento e realiza ações. No entanto, para simplificar este artigo, você enviará os eventos para um aplicativo Web que coleta e exibe as mensagens.
Pré-requisitos
- Assinatura do Azure – Crie uma gratuitamente. Você também pode usar o Azure Cloud Shell.
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. | |
Acesse https://shell.azure.com ou selecione o botão Iniciar o Cloud Shell para abri-lo no navegador. | |
Selecione o botão Cloud Shell na barra de menus no canto superior direito 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 o comando.
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.
Selecione Enter para executar o código ou o comando.
Se você optar por instalar e usar a CLI localmente, este artigo exigirá que você esteja executando a versão da CLI do Azure mais recente (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 de Grade de Eventos são recursos do Azure e devem ser colocados em um grupo de recursos do Azure. O grupo de recursos do Azure é 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 westus. Substitua <resource_group_name>
por um nome exclusivo para o grupo de recursos.
az group create --name <resource_group_name> --location westus
Criar um repositório de Configuração de Aplicativos
Substitua <appconfig_name>
por um nome exclusivo para o armazenamento de configuração e <resource_group_name>
pelo grupo de recursos que você criou anteriormente. O nome precisa ser exclusivo porque ele é usado como um nome DNS.
az appconfig create \
--name <appconfig_name> \
--location westus \
--resource-group <resource_group_name> \
--sku free
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/master/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
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
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
forRegistered
, você está pronto para continuar.
Assinar o armazenamento de Configuração de Aplicativos
Assine um tópico para indicar à Grade de Eventos quais eventos você deseja acompanhar e para onde enviar esses eventos. O exemplo a seguir assina a Configuração de Aplicativos criada e passa a URL do aplicativo Web como o ponto de extremidade para a notificação de eventos. Substitua <event_subscription_name>
por um nome para a assinatura de evento. Em <resource_group_name>
e <appconfig_name>
, use os valores criados anteriormente.
O ponto de extremidade para seu aplicativo Web deve 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
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.
Disparar um evento da Configuração de Aplicativos
Agora, vamos disparar um evento para ver como a Grade de Eventos distribui a mensagem para o ponto de extremidade. Crie uma chave-valor usando o <appconfig_name>
usado anteriormente.
az appconfig kv set --name <appconfig_name> --key Foo --value Bar --yes
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": "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"
}]
Limpar os recursos
Se planejar continuar trabalhando com essa Configuração de Aplicativos e essa assinatura de evento, não limpe os recursos criados neste artigo. Caso contrário, use os comandos a seguir para excluir os recursos criados por você neste artigo.
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 de chave-valor e como a Grade de Eventos pode ajudá-lo: