Usar uma função como manipulador de eventos para eventos da Grade de Eventos
Um manipulador de eventos é o local para onde o evento é enviado. O manipulador executa uma ação para processar o evento. Vários serviços do Azure são configurados automaticamente para manipular eventos e o Azure Functions é um deles. Por exemplo, a Grade de Eventos do Azure pode utilizar o Azure Functions como uma camada anticorrupção para transformar ou validar eventos antes de encaminhá-los para sistemas downstream.
Para usar uma função no Azure como um manipulador de eventos, siga uma destas abordagens:
- Use o gatilho Grade de Eventos. Especifique a Função do Azure como o tipo de ponto de extremidade. Em seguida, especifique o aplicativo de função e a função que manipulará eventos.
- Use o gatilho HTTP. Especifique Web Hook como o tipo de ponto de extremidade. Em seguida, especifique a URL para a função que manipulará eventos.
Recomendamos que você use a primeira abordagem (gatilho de grade de eventos), pois ela tem as seguintes vantagens em relação à segunda abordagem:
- A Grade de Eventos valida automaticamente os gatilhos da Grade de Eventos. Com gatilhos HTTP genéricos, você mesmo deve implementar a resposta de validação.
- A Grade de Eventos ajusta automaticamente a taxa na qual os eventos são entregues a uma função acionada por um evento de Grade de Eventos com base na taxa percebida na qual a função pode processar eventos. Esse recurso de correspondência de taxa evita erros de entrega decorrentes da incapacidade de uma função de processar eventos, pois a taxa de processamento de eventos da função pode variar ao longo do tempo. Para melhorar a eficiência em alta taxa de transferência, habilite o processamento em lote na assinatura do evento. Para obter mais informações, consulte Habilitar envio em lote.
Nota
- Quando você usa um gatilho de Grade de Eventos para adicionar uma assinatura de evento usando uma função do Azure, a Grade de Eventos busca a chave de acesso para a função de destino usando as credenciais da entidade de serviço de Grade de Eventos. As permissões são concedidas à Grade de Eventos quando você registra o provedor de recursos da Grade de Eventos em sua assinatura do Azure.
- Se você proteger sua função do Azure com um aplicativo Microsoft Entra ID , terá que adotar a abordagem de webhook genérica usando o gatilho HTTP. Use o ponto de extremidade da função do Azure como uma URL de webhook ao adicionar a assinatura.
Tutoriais
Title | Description |
---|---|
Guia de início rápido: manipular eventos com função | Envia um evento personalizado para uma função para processamento. |
Tutorial: transmitir big data para um armazém de dados | Quando os Hubs de Eventos criam um arquivo de Captura, a Grade de Eventos envia um evento para um aplicativo de função. O aplicativo recupera o arquivo de captura e migra dados para um data warehouse. |
Tutorial: Exemplos de integração do Barramento de Serviço do Azure para a Grade de Eventos do Azure | A Grade de Eventos envia mensagens do tópico do Service Bus para um aplicativo de função e um aplicativo lógico. |
Exemplo REST (para PUT)
{
"properties":
{
"destination":
{
"endpointType": "AzureFunction",
"properties":
{
"resourceId": "/subscriptions/<AZURE SUBSCRIPTION ID>/resourceGroups/<RESOURCE GROUP NAME>/providers/Microsoft.Web/sites/<FUNCTION APP NAME>/functions/<FUNCTION NAME>",
"maxEventsPerBatch": 10,
"preferredBatchSizeInKilobytes": 64
}
},
"eventDeliverySchema": "EventGridSchema"
}
}
Ativar envio em lote
Para uma taxa de transferência mais alta, habilite o envio em lote na assinatura. Se estiver a utilizar o portal do Azure, pode definir o máximo de eventos por lote e o tamanho de lote preferido em kilo bytes no momento da criação de uma subscrição ou após a criação.
Você pode definir configurações de lote usando o portal do Azure, PowerShell, CLI ou modelo do Gerenciador de Recursos.
Portal do Azure
No momento da criação de uma assinatura na interface do usuário, na página Criar Assinatura de Evento, alterne para a guia Recursos Avançados e defina valores para Eventos máximos por lote e Tamanho de lote preferencial em kilobytes.
Você pode atualizar esses valores para uma assinatura existente na guia Recursos da página Tópico da Grade de Eventos .
Modelo Azure Resource Manager
Você pode definir maxEventsPerBatch e preferredBatchSizeInKilobytes em um modelo do Azure Resource Manager. Para obter mais informações, consulte Microsoft.EventGrid eventSubscriptions template reference.
CLI do Azure
Você pode usar o az eventgrid event-subscription create
comando para definir configurações relacionadas a lotes usando os seguintes parâmetros: --max-events-per-batch
ou --preferred-batch-size-in-kilobytes
.
Azure PowerShell
Você pode usar o cmdlet New-AzEventGridSubscription ou Update-AzEventGridSubscription para definir configurações relacionadas a lotes usando os seguintes parâmetros: -MaxEventsPerBatch
ou -PreferredBatchSizeInKiloBytes
.
Nota
Quando você usa o Gatilho de Grade de Eventos, o serviço de Grade de Eventos busca o segredo do cliente para a função do Azure de destino e o usa para entregar eventos para a função do Azure. Se você proteger sua função do Azure com um aplicativo Microsoft Entra, precisará adotar a abordagem genérica de gancho da Web e usar o Gatilho HTTP.
Próximos passos
Consulte o artigo Manipuladores de eventos para obter uma lista de manipuladores de eventos suportados.