Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
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
Para poder usar essa extensão de associação em seu aplicativo, verifique se o arquivo host.json na raiz do 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 instrui o host do [4.0.0, 5.0.0) Functions a usar uma versão de pacote pelo menos 4.0.0 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 do pacote de extensão mais recente e permitir que o runtime mantenha automaticamente a versão secundária mais recente. Você pode exibir o conteúdo do pacote mais recente na página de lançamento dos pacotes de extensão. Para obter mais informações, consulte os pacotes de extensão do Azure Functions.
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, selecione Configuração.
Na guia Configurações de runtime de função , para Monitoramento de Escala de Runtime, selecione Ativar.
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 | Tipo | 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 |