Partilhar via


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.

Para usar uma função no Azure como um manipulador para 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ê aciona uma 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 da 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 Descrição
Guia de 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 utilizadores carregam imagens através da aplicação 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 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.

Enable batching at the time of creating a subscription

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

Enable batching after creation

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 azure com um aplicativo Microsoft Entra, terá que 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.