Partilhar via


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.

Diagram that shows Event Grid Model.

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: