Reagindo a eventos de Configuração de Aplicativo do Azure
Os eventos de Configuração de Aplicativo do Azure permitem que os aplicativos reajam a alterações nos valores de chave. Isto é feito sem a necessidade de códigos complicados ou serviços de sondagem caros e ineficientes. Em vez disso, os eventos são enviados por push através da Grade de Eventos do Azure para assinantes, como o Azure Functions, os Aplicativos Lógicos do Azure ou até mesmo para seu próprio ouvinte HTTP personalizado. Essencialmente, você só paga pelo que usa.
Os eventos de Configuração de Aplicativo do Azure são enviados para a Grade de Eventos do Azure, que fornece serviços de entrega confiáveis para seus aplicativos por meio de políticas avançadas de repetição e entrega de cartas mortas. Para obter mais informações, consulte Entrega e repetição de mensagens da Grade de Eventos.
Os cenários comuns de eventos de Configuração de Aplicativo incluem a atualização da configuração do aplicativo, o acionamento de implantações ou qualquer fluxo de trabalho orientado à configuração. Quando as alterações são pouco frequentes, mas seu cenário requer capacidade de resposta imediata, a arquitetura baseada em eventos pode ser especialmente eficiente.
Dê uma olhada em Usar grade de eventos para notificações de alteração de dados para obter um exemplo rápido.
Tipos de eventos disponíveis
A Grade de Eventos usa assinaturas de eventos para rotear mensagens de eventos para assinantes. A Configuração do Aplicativo do Azure emite os seguintes tipos de evento:
Tipo de evento | Description |
---|---|
Microsoft.AppConfiguration.KeyValueModified | Gerado quando um valor-chave é criado ou substituído. |
Microsoft.AppConfiguration.KeyValueDeleted | Gerado quando um valor-chave é excluído. |
Microsoft.AppConfiguration.SnapshotCreated | Gerado quando um instantâneo é criado. |
Microsoft.AppConfiguration.SnapshotModified | Gerado quando um instantâneo é modificado. |
Esquema de eventos
Um evento tem os seguintes dados de nível superior:
Propriedade | Type | Description |
---|---|---|
source |
string | Caminho completo do recurso para a origem do evento. Este campo não pode ser gravado. O Event Grid fornece este valor. |
subject |
string | Caminho definido pelo publicador para o assunto do evento. |
type |
string | Um dos tipos de eventos registados para esta origem de evento. |
time |
string | A hora em que o evento é gerado com base na hora UTC do provedor. |
id |
string | Identificador exclusivo do evento. |
data |
objeto | Dados de eventos de Configuração do Aplicativo. |
specversion |
string | Versão da especificação do esquema CloudEvents. |
O objeto de dados tem as seguintes propriedades:
Evento chave-valor
Propriedade | Type | Description |
---|---|---|
key |
string | A chave do valor-chave que foi modificada ou excluída. |
label |
string | O rótulo, se houver, do valor-chave que foi modificado ou excluído. |
etag |
string | Para KeyValueModified a etag do novo valor-chave. Para KeyValueDeleted a etag do valor-chave que foi excluído. |
syncToken |
string | O token de sincronização que representa o estado do servidor após o evento chave-valor. |
Evento de instantâneo
Propriedade | Type | Description |
---|---|---|
name |
string | O nome do instantâneo que foi criado ou modificado. |
etag |
string | Para SnapshotCreated o etag do novo snapshot. Para SnapshotModified o etag do instantâneo que foi modificado. |
syncToken |
string | O token de sincronização que representa o estado do servidor após o evento de instantâneo. |
Exemplo de evento
O exemplo a seguir mostra o esquema de um evento modificado chave-valor:
[{
"id": "84e17ea4-66db-4b54-8050-df8f7763f87b",
"source": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/testrg/providers/microsoft.appconfiguration/configurationstores/contoso",
"subject": "https://contoso.azconfig.io/kv/Foo?label=FizzBuzz",
"data": {
"key": "Foo",
"label": "FizzBuzz",
"etag": "FnUExLaj2moIi4tJX9AXn9sakm0"
},
"type": "Microsoft.AppConfiguration.KeyValueModified",
"time": "2019-05-31T20:05:03Z",
"specversion": "1.0"
}]
O exemplo a seguir mostra o esquema de um evento excluído chave-valor:
[{
"id": "84e17ea4-66db-4b54-8050-df8f7763f87b",
"source": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/testrg/providers/microsoft.appconfiguration/configurationstores/contoso",
"subject": "https://contoso.azconfig.io/kv/Foo?label=FizzBuzz",
"data": {
"key": "Foo",
"label": "FizzBuzz",
"etag": "FnUExLaj2moIi4tJX9AXn9sakm0"
},
"type": "Microsoft.AppConfiguration.KeyValueDeleted",
"time": "2019-05-31T20:05:03Z",
"specversion": "1.0"
}]
O exemplo a seguir mostra o esquema de um evento criado por instantâneo:
[{
"source": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/testrg/providers/microsoft.appconfiguration/configurationstores/contoso",
"subject": "https://contoso.azconfig.io/kvsnapshots/Foo",
"type": "Microsoft.AppConfiguration.SnapshotCreated",
"time": "2023-09-02T20:05:03.0000000Z",
"id": "84e17ea4-66db-4b54-8050-df8f7763f87b",
"data": {
"name": "Foo",
"etag": "FnUExLaj2moIi4tJX9AXn9sakm0",
"syncToken": "zAJw6V16=Njo1IzUxNjQ2NzM=;sn=5164673"
},
"specversion": "1.0"
}]
O exemplo a seguir mostra o esquema de um evento modificado de instantâneo:
[{
"source": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/testrg/providers/microsoft.appconfiguration/configurationstores/contoso",
"subject": "https://contoso.azconfig.io/snapshots/Foo",
"type": "Microsoft.AppConfiguration.SnapshotModified",
"time": "2023-09-03T20:05:03.0000000Z",
"id": "84e17ea4-66db-4b54-8050-df8f7763f87b",
"data": {
"name": "Foo",
"etag": "FnUExLaj2moIi4tJX9AXn9sakm0",
"syncToken": "zAJw6V16=Njo1IzUxNjQ2NzM=;sn=5164673"
},
"specversion": "1.0"
}]
Para obter mais informações, consulte Esquema de eventos de Configuração do Aplicativo Azure.
Práticas de consumo de eventos
Os aplicativos que manipulam eventos de Configuração do Aplicativo devem seguir estas práticas recomendadas:
- Várias assinaturas podem ser configuradas para rotear eventos para o mesmo manipulador de eventos, portanto, não assuma que os eventos são de uma fonte específica. Em vez disso, verifique o tópico da mensagem para garantir que a instância de Configuração do Aplicativo esteja enviando o evento.
- Marque o
eventType
, e não assuma que todos os eventos recebidos serão os tipos esperados. - Use os
etag
campos para entender se suas informações sobre objetos ainda estão atualizadas. - Use os campos sequenciadores para entender a ordem dos eventos em qualquer objeto específico.
- Use o campo assunto para acessar o valor-chave que foi modificado.
Próximos passos
Para saber mais sobre a Grade de Eventos e experimentar os eventos da Configuração do Aplicativo do Azure, consulte: