Condividi tramite


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 TIPO
Eseguire una funzione in base a un nuovo evento Kafka. Attivazione
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.

  1. Nell'app per le funzioni del portale di Azure selezionare Configurazione.

  2. Nella scheda Impostazioni runtime funzione selezionare per Monitoraggio scalabilità di runtime.

    Screenshot dell'area del portale di Azure per abilitare il ridimensionamento in fase di esecuzione.

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à Predefiniti TIPO Descrizione
ChannelFullRetryIntervalInMs 50 Attivatore 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 Attivatore Dimensioni massime del batch quando si chiama una funzione attivata da Kafka.
SubscriberIntervalInSeconds 1 Attivatore 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 Attivatore auto.commit.interval.ms
AutoOffsetReset Attivatore auto.offset.reset
FetchMaxBytes Attivatore fetch.max.bytes
LibkafkaDebug Entrambi debug
MaxPartitionFetchBytes Attivatore max.partition.fetch.bytes
MaxPollIntervalMs Attivatore max.poll.interval.ms
MetadataMaxAgeMs Entrambi metadata.max.age.ms
QueuedMinMessages Attivatore queued.min.messages
QueuedMaxMessagesKbytes Attivatore queued.max.messages.kbytes
RiconnetteReconnectBackoffMs Attivatore reconnect.backoff.max.ms
ReconnectBackoffMaxMs Attivatore reconnect.backoff.max.ms
SessionTimeoutMs Attivatore session.timeout.ms
SocketKeepaliveEnable Entrambi socket.keepalive.enable
StatisticsIntervalMs Attivatore statistics.interval.ms

Passaggi successivi