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

A extensão do Kafka para Azure Functions permite gravar 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 do Kafka.

Importante

As associações do Kafka só estão disponíveis para o Functions no plano Elastic Premium e plano Dedicado (Serviço de Aplicativo). Elas são compatíveis apenas nas versão 3.x e posterior do runtime do Functions.

Ação Tipo
Execute uma função com base em um novo evento do Kafka. Gatilho
Gravar no fluxo de eventos do Kafka. Associação de saída

Instalar a extensão

O pacote NuGet da extensão instalado depende do modo C# usado no aplicativo de funções:

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

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

Instalar pacote

A extensão do Kafka faz parte de um pacote de extensões, que é especificado no arquivo de projeto host.json. Quando você cria um projeto para a versão 3. x ou posterior do Functions, esse pacote já deve estar instalado. Para saber mais, confira pacotes de extensão.

Habilitar dimensionamento de runtime

Para permitir que suas funções sejam dimensionadas corretamente no plano Premium ao usar gatilhos e associações do Kafka, você precisa habilitar o monitoramento de escala do runtime.

No portal do Azure, em seu aplicativo de funções, escolha Configuração e, na guia Configurações de runtime de funções, altere o Monitoramento de escala do Runtime para Ativo.

Captura de tela do painel do portal do Azure para habilitar escala por runtime.

configurações de host.json

Esta seção descreve as definições de configuração disponíveis para a 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 do aplicativo de funções. Para saber mais sobre as definições de configuração do aplicativo de funções nas versões 3.x e superiores, confira a referência de host.json para o Azure Functions.

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

Propriedade Padrão Digite Descrição
ChannelFullRetryIntervalInMs 50 Gatilho Define o intervalo de repetição do assinante, em milissegundos, usado ao tentar adicionar itens a um canal em capacidade.
ExecutorChannelCapacity 1 Ambos Define a capacidade de mensagem do canal. Quando a capacidade é atingida, o assinante do Kafka pausa até que a função seja atualizada.
MaxBatchSize 64 Gatilho Tamanho máximo do lote ao chamar uma função de função de gatilho do Kafka.
SubscriberIntervalInSeconds 1 Gatilho Define a frequência mínima em que as mensagens de entrada são executadas, por função em segundos. Somente quando o volume da mensagem for menor que MaxBatchSize / SubscriberIntervalInSeconds

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

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

Próximas etapas