Panoramica delle associazioni Apache Kafka per Funzioni di Azure
L'estensione Kafka per Funzioni di Azure consente di scrivere valori negli argomenti apache Kafka usando un'associazione di output. È anche possibile usare un trigger per richiamare le funzioni in risposta ai messaggi negli argomenti Kafka.
Importante
Le associazioni Kafka sono disponibili solo per le funzioni nel piano Elastic Premium e dedicato (servizio app). Sono supportate solo nella versione 3.x e successiva del runtime di Funzioni.
Azione | Type |
---|---|
Eseguire una funzione in base a un nuovo evento Kafka. | Trigger |
Scrivere nel flusso di eventi Kafka. | Associazione di output |
Installare l'estensione
Il pacchetto NuGet di estensione installato dipende dalla modalità C# usata nell'app per le funzioni:
Le funzioni sono eseguite in un processo di lavoro C# isolato. Per altre informazioni, vedere Guida per l'esecuzione di Funzioni di Azure C# in un processo di lavoro isolato.
Aggiungere l'estensione al progetto installando questo pacchetto NuGet.
Installare il bundle
L'estensione Kafka fa parte di un bundle di estensione, specificato nel file di progetto host.json. Quando si crea un progetto destinato a Funzioni versione 3.x o successiva, è necessario avere già installato questo bundle. Per altre informazioni, vedere bundle di estensioni.
Abilitare il ridimensionamento in fase di esecuzione
Per consentire alle funzioni di ridimensionare correttamente il piano Premium quando si usano trigger e associazioni Kafka, è necessario abilitare il monitoraggio della scalabilità di runtime.
Nella portale di Azure, nell'app per le funzioni scegliere Configurazione e nella scheda Impostazioni runtime funzione impostare Monitoraggio della scalabilità di runtime su Sì.
impostazioni host.json
Questa sezione descrive le impostazioni di configurazione disponibili per questa associazione nelle versioni 3.x e successive. Le impostazioni nel file host.json si applicano a tutte le funzioni in un'istanza dell'app per le funzioni. Per altre informazioni sulle impostazioni di configurazione delle app per le funzioni nelle versioni 3.x e successive, vedere le informazioni di riferimento sulle host.json per Funzioni di Azure.
{
"version": "2.0",
"extensions": {
"kafka": {
"maxBatchSize": 64,
"SubscriberIntervalInSeconds": 1,
"ExecutorChannelCapacity": 1,
"ChannelFullRetryIntervalInMs": 50
}
}
}
Proprietà | Default | Tipo | Descrizione |
---|---|---|---|
ChannelFullRetryIntervalInMs | 50 | Trigger | Definisce l'intervallo di ripetizione dei tentativi del sottoscrittore, espresso in millisecondi, usato quando si tenta di aggiungere elementi a un canale con capacità. |
ExecutorChannelCapacity | 1 | Entrambi | Definisce la capacità dei messaggi del canale. Una volta raggiunta la capacità, il sottoscrittore Kafka si sospende fino a quando la funzione non viene recuperata. |
MaxBatchSize | 64 | Trigger | Dimensioni massime del batch quando si chiama una funzione attivata da Kafka. |
SubscriberIntervalInSeconds | 1 | Trigger | Definisce la frequenza minima di esecuzione dei messaggi in ingresso, per funzione in secondi. Solo quando il volume del messaggio è minore di MaxBatchSize / SubscriberIntervalInSeconds |
Le proprietà seguenti, ereditate dalla libreria client C/C++ di Apache Kafka, sono supportate anche nella kafka
sezione di host.json, per trigger o entrambe le associazioni di output e trigger:
Proprietà | Si applica a | equivalente librdkafka |
---|---|---|
AutoCommitIntervalMs | Trigger | auto.commit.interval.ms |
AutoOffsetReset | Trigger | auto.offset.reset |
FetchMaxBytes | Trigger | fetch.max.bytes |
LibkafkaDebug | Entrambi | debug |
MaxPartitionFetchBytes | Trigger | max.partition.fetch.bytes |
MaxPollIntervalMs | Trigger | max.poll.interval.ms |
MetadataMaxAgeMs | Entrambi | metadata.max.age.ms |
QueuedMinMessages | Trigger | queued.min.messages |
QueuedMaxMessagesKbytes | Trigger | queued.max.messages.kbytes |
RiconnetteReconnectBackoffMs | Trigger | reconnect.backoff.max.ms |
ReconnectBackoffMaxMs | Trigger | reconnect.backoff.max.ms |
SessionTimeoutMs | Trigger | session.timeout.ms |
SocketKeepaliveEnable | Entrambi | socket.keepalive.enable |
StatisticsIntervalMs | Trigger | statistics.interval.ms |