Use uma função do Azure como um manipulador de eventos para os eventos da Grade de Eventos

Um manipulador de eventos é o local para o qual o evento é enviado. O manipulador usa uma ação para processar o evento. Vários serviços do Azure são automaticamente configurados para lidar com os eventos e o Azure Functions é um deles.

Para usar uma função no Azure como um manipulador para eventos, siga uma destas abordagens:

  • Use o gatilho da Grade de Eventos. Especifique a Função do Azure como o tipo de ponto de extremidade. Em seguida, especifique o aplicativo de funções e a função que manipulará eventos.
  • Use o gatilho HTTP. Especifique o Web hook como o tipo de ponto de extremidade. Em seguida, especifique a URL para a função que tratará os eventos.

Recomendamos que você use a primeira abordagem (gatilho de Grade de Eventos), pois ela tem as seguintes vantagens em relação à segunda:

  • A Grade de Eventos valida automaticamente os próprios gatilhos. Com os gatilhos HTTP genéricos, você deve implementar a resposta de validação.
  • A Grade de Eventos ajusta automaticamente a taxa à qual os eventos são entregues a uma função disparada 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 que resultam 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 envio em lote na assinatura do evento. Para obter mais informações, confira Habilitar armazenamento em lote.

Observação

  • Quando você um gatilho da Grade de Eventos para adicionar uma assinatura de evento usando uma função do Azure, a Grade de Eventos busca a função de destino na chave de acesso por meio das credenciais da entidade de serviço da Grade de Eventos. As permissões são concedidas à Grade de Eventos quando você registra o provedor de recursos da Grade de Eventos na assinatura do Azure.
  • Se você proteger sua função do Azure com um aplicativo do Microsoft Entra ID, precisará usar 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 Descrição
Início Rápido: Manipular eventos com função Envia um evento personalizado para uma função para processamento.
Tutorial: automatizar o redimensionamento de imagens carregadas usando a Grade de Eventos Os usuários fazem o upload de imagens por meio do aplicativo Web para a conta de armazenamento. Quando um blob de armazenamento é criado, a Grade de Eventos envia um evento para o aplicativo de função, que redimensiona a imagem carregada.
Tutorial: transmitir Big Data para um data warehouse 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 Barramento de Serviço para um aplicativo de funções 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"
	}
}

Habilitar o envio em lote

Para obter uma taxa de transferência mais alta, habilite o envio em lote na assinatura. Se você estiver usando o portal do Azure, poderá definir o máximo de eventos por lote e o tamanho de lote preferencial em quilobytes no momento da criação de uma assinatura ou após a criação.

Você pode definir configurações de lote usando o portal do Azure, o PowerShell, a CLI ou o modelo do Resource Manager.

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 Máximo de eventos por lote e Tamanho preferencial do lote em quilobytes.

Enable batching at the time of creating a subscription

Você pode atualizar esses valores para uma assinatura na guia Recursos da página de Tópicos da Grade de Eventos.

Enable batching after creation

Modelo do Azure Resource Manager

Você pode definir maxEventsPerBatch e preferredBatchSizeInKilobytes em um modelo do Azure Resource Manager. Para obter mais informações, confira Referência de modelo de eventSubscriptions da Microsoft.EventGrid.

CLI do Azure

Você pode usar o comando az eventgrid event-subscription create para definir configurações relacionadas ao lote 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 ao lote usando os seguintes parâmetros: -MaxEventsPerBatch ou -PreferredBatchSizeInKiloBytes.

Observação

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 de destino do Azure e o usa para entregar eventos para a função do Azure. Se você proteger sua função do Microsoft Entra com um aplicativo Microsoft Entra, precisará usar a abordagem de web hook genérica e utilizar o gatilho HTTP.

Próximas etapas

Consulte o artigo Manipuladores de eventos para obter uma lista dos manipuladores de eventos compatíveis.