Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Os eventos de Configuração de Aplicativo do Azure permitem que os aplicativos reajam às alterações nos valores-chave. Isso é feito sem a necessidade de código complicado ou serviços de sondagem caros e ineficientes. Em vez disso, os eventos são enviados por push por meio 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. Criticamente, você paga apenas 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 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 evento de Configuração de Aplicativo incluem atualizar a configuração do aplicativo, disparar 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 a Grade de Eventos para notificações de alteração de dados para obter um exemplo rápido.
Tipos de evento disponíveis
A Grade de Eventos usa assinaturas de evento para rotear mensagens de evento para assinantes. A Configuração de 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 | Tipo | Description |
|---|---|---|
source |
cadeia | Caminho completo do recurso para a origem do evento. Este campo não é gravável. A Grade de Eventos fornece esse valor. |
subject |
cadeia | Caminho definido pelo publicador para o assunto do evento. |
type |
cadeia | Um dos tipos de evento registrados para essa fonte de evento. |
time |
cadeia | A hora em que o evento é gerado com base na hora UTC do provedor. |
id |
cadeia | Identificador exclusivo para o evento. |
data |
objeto | Dados de evento da Configuração do Aplicativo. |
specversion |
cadeia | Versão de especificação de esquema do CloudEvents. |
O objeto de dados tem as seguintes propriedades:
Evento chave-valor
| Propriedade | Tipo | Description |
|---|---|---|
key |
cadeia | A chave do valor-chave que foi modificado ou excluído. |
label |
cadeia | O rótulo, se houver, do valor-chave que foi modificado ou excluído. |
etag |
cadeia | Para KeyValueModified a etag do novo valor-chave. Para KeyValueDeleted a etag do valor-chave que foi excluído. |
syncToken |
cadeia | O token de sincronização que representa o estado do servidor após o evento chave-valor. |
Evento de instantâneo
| Propriedade | Tipo | Description |
|---|---|---|
name |
cadeia | O nome do instantâneo que foi criado ou modificado. |
etag |
cadeia | Para SnapshotCreated a etag do novo instantâneo. Para SnapshotModified a etag do instantâneo que foi modificado. |
syncToken |
cadeia | O token de sincronização que representa o estado do servidor após o evento de instantâneo. |
Evento de exemplo
O exemplo a seguir mostra o esquema de um evento modificado de 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 de 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 o esquema de eventos da Configuração de Aplicativo do Azure.
Práticas para consumir eventos
Os aplicativos que lidam com eventos de Configuração de 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 suponha que os eventos sejam de uma fonte específica. Em vez disso, verifique o tópico da mensagem para garantir que a instância de Configuração de Aplicativo esteja enviando o evento.
- Verifique e
eventTypenão suponha que todos os eventos recebidos serão os tipos esperados. - Use os
etagcampos para entender se suas informações sobre objetos ainda estão up-to-date. - Use os campos do sequenciador para entender a ordem dos eventos em qualquer objeto específico.
- Use o campo de assunto para acessar a chave-valor que foi modificada.
Próximas etapas
Para saber mais sobre a Grade de Eventos e experimentar os eventos da Configuração de Aplicativos do Azure, confira: