Compartilhar via


Reagir a eventos de Configuração de Aplicativos do Azure

Os eventos de Configuração de Aplicativos do Azure permitem que os aplicativos reajam a alterações nos valores-chave. Isso é feito sem a necessidade de código complicado ou serviços de sondagem caros e ineficientes. Nesse caso, os eventos são enviados por push pela Grade de Eventos do Azure a assinantes como o Azure Functions, os Aplicativos Lógicos do Azure ou mesmo ao próprio ouvinte HTTP personalizado. Você paga apenas pelo que usa.

Os eventos de Configuração de Aplicativos do Azure são enviados para a Grade de Eventos do Azure, que fornece serviços de entrega confiáveis para os aplicativos por meio de políticas de repetição avançadas e entrega de mensagens mortas. Para saber mais, confira Event Grid message delivery and retry (Entrega e repetição de mensagens da Grade de Eventos).

Os cenários comuns de eventos de Configuração de Aplicativos incluem atualizar a configuração do aplicativo, disparar implantações ou qualquer fluxo de trabalho orientado por configuração. Quando as alterações não forem frequentes, mas seu cenário exigir uma capacidade de resposta imediata, a arquitetura baseada em eventos pode ser especialmente eficaz.

Dê uma olhada em Usar a Grade de Eventos para notificações de alterações de dados para um exemplo rápido.

Diagram that shows Event Grid Model.

Tipos de evento disponíveis

A Grade de eventos usa assinaturas de evento para rotear mensagens de evento para os assinantes. A Configuração de Aplicativos do Azure emite os tipos de evento a seguir:

Tipo de evento Descrição
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 do evento

Um evento tem os seguintes dados de nível superior:

Propriedade Type Descrição
source string Caminho de recurso completo para a origem do evento. Este campo não é gravável. A Grade de Eventos fornece esse valor.
subject string Caminho definido pelo publicador para o assunto do evento.
type string Um dos tipos de evento registrados para a origem do 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 evento da Configuração de Aplicativos.
specversion string Versão de especificação do esquema CloudEvents.

O objeto de dados tem as seguintes propriedades:

Evento chave-valor

Propriedade Type Descrição
key string A chave do valor-chave que foi modificado ou excluído.
label string A etiqueta, 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 Descrição
name string O nome do instantâneo que foi criado ou modificado.
etag string Para SnapshotCreated, a etag do novo instantâneo. Para SnapshotModified, a 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 de modificação de valor-chave:

[{
  "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 de exclusão de valor-chave:

[{
  "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"
}]

Veja no exemplo a seguir o esquema de um evento de criação de 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 de modificação 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, veja Esquema de eventos de Configuração de Aplicativos do Azure.

Práticas para consumo de eventos

Os aplicativos que lidam com os eventos de Configuração de Aplicativos devem seguir estas práticas recomendadas:

  • Várias assinaturas podem ser configuradas para rotear eventos para o mesmo manipulador de eventos, portanto, não presuma que os eventos são de uma origem específica. Nesse caso, verifique o tópico da mensagem para garantir que a instância da Configuração de Aplicativos envie o evento.
  • Marque eventType e não presuma que todos os eventos que você recebe são os tipos que espera.
  • Use os campos etag para entender se as informações sobre objetos estão atualizadas.
  • Use os campos do sequenciador para entender a ordem de eventos em qualquer objeto específico.
  • Use o campo de assunto para acessar o valor-chave que foi modificado.

Próximas etapas

Para saber mais sobre a Grade de Eventos e experimentar os eventos de Configuração de Aplicativos do Azure, confira: