Partilhar via


Visão geral das ligações do Apache Kafka para o Azure Functions

A extensão Kafka para Azure Functions permite que você escreva valores em tópicos do Apache Kafka usando uma associação de saída. Você também pode usar um gatilho para invocar suas funções em resposta a mensagens em tópicos Kafka.

Importante

As ligações Kafka só estão disponíveis para Funções no plano Elastic Premium e no plano Dedicado (Serviço de Aplicativo). Eles só são suportados na versão 3.x e versão posterior do tempo de execução do Functions.

Ação Tipo
Execute uma função com base em um novo evento Kafka. Acionador
Escreva para o fluxo de eventos de Kafka. Vinculação de saída

Instalar a extensão

O pacote de extensão NuGet que você instala depende do modo C# que você está usando em seu aplicativo de função:

As funções são executadas em um processo de trabalho C# isolado. Para saber mais, consulte Guia para executar o C# Azure Functions em um processo de trabalho isolado.

Adicione a extensão ao seu projeto instalando este pacote NuGet.

Instalar pacote

Para poder usar essa extensão de associação em seu aplicativo, certifique-se de que o arquivo dehost.json na raiz do seu projeto contém esta extensionBundle referência:

{
    "version": "2.0",
    "extensionBundle": {
        "id": "Microsoft.Azure.Functions.ExtensionBundle",
        "version": "[4.0.0, 5.0.0)"
    }
}

Neste exemplo, o version valor de instrui o host Functions a usar uma versão de [4.0.0, 5.0.0) pacote que seja pelo menos 4.0.0 , mas menor que 5.0.0, que inclui todas as versões potenciais do 4.x. Essa notação mantém efetivamente seu aplicativo na versão secundária mais recente disponível do pacote de extensão v4.x.

Quando possível, você deve usar a versão principal mais recente do pacote de extensão e permitir que o tempo de execução mantenha automaticamente a versão secundária mais recente. Você pode visualizar o conteúdo do pacote mais recente na página de lançamento dos pacotes de extensão. Para obter mais informações, consulte Pacotes de extensão do Azure Functions.

Habilitar o dimensionamento de tempo de execução

Para permitir que suas funções sejam dimensionadas corretamente no plano Premium ao usar gatilhos e ligações Kafka, você precisa habilitar o monitoramento da escala de tempo de execução.

  1. No portal do Azure, em seu aplicativo de função, selecione Configuração.

  2. Na guia Configurações de tempo de execução da função , para Monitoramento de escala de tempo de execução, selecione Ativado.

    Captura de tela da área do portal do Azure para habilitar o dimensionamento em tempo de execução.

host.json configurações

Esta seção descreve as definições de configuração disponíveis para essa associação nas versões 3.x e superiores. As configurações no arquivo host.json se aplicam a todas as funções em uma instância de aplicativo de função. Para obter mais informações sobre definições de configuração de aplicativo de função nas versões 3.x e versões posteriores, consulte a referência de host.json para o Azure Functions.

{
    "version": "2.0",
    "extensions": {
        "kafka": {
            "maxBatchSize": 64,
            "SubscriberIntervalInSeconds": 1,
            "ExecutorChannelCapacity": 1,
            "ChannelFullRetryIntervalInMs": 50
        }
    }
}

Propriedade Predefinição Tipo Descrição
ChannelFullRetryIntervalInMs 50 Acionador Define o intervalo de repetição do assinante, em milissegundos, usado ao tentar adicionar itens a um canal na capacidade.
ExecutorChannelCapacity 1 Ambos Define a capacidade de mensagem do canal. Uma vez atingida a capacidade, o assinante Kafka faz uma pausa até que a função seja recuperada.
MaxBatchSize 64 Acionador Tamanho máximo do lote ao chamar uma função acionada por Kafka.
SubscriberIntervalInSeconds 1 Acionador Define a frequência mínima com que as mensagens recebidas são executadas, por função, em segundos. Apenas quando o volume de mensagens for inferior a MaxBatchSize / SubscriberIntervalInSeconds

As seguintes propriedades, que são herdadas da biblioteca de cliente Apache Kafka C/C++, também são suportadas na kafka seção de host.json, para gatilhos ou ligações de saída e gatilhos:

Propriedade Aplica-se a librdkafka equivalente
AutoCommitIntervalMs Acionador auto.commit.interval.ms
AutoOffsetRedefinir Acionador auto.offset.reset
FetchMaxBytes Acionador fetch.max.bytes
LibkafkaDebug Ambos debug
MaxPartitionFetchBytes Acionador max.partition.fetch.bytes
MaxPollIntervalMs Acionador max.poll.interval.ms
MetadataMaxAgeMs Ambos metadata.max.age.ms
QueuedMinMessages Acionador queued.min.messages
QueuedMaxMessagesKbytes Acionador queued.max.messages.kbytes
ReconnectBackoffMs Acionador reconnect.backoff.max.ms
ReconnectBackoffMaxMs Acionador reconnect.backoff.max.ms
SessionTimeoutMs Acionador session.timeout.ms
SocketKeepaliveEnable Ambos socket.keepalive.enable
StatisticsIntervalMs Acionador statistics.interval.ms

Próximos passos