Apache Kafka-utlösare för Azure Functions
Du kan använda Apache Kafka-utlösaren i Azure Functions för att köra funktionskoden som svar på meddelanden i Kafka-ämnen. Du kan också använda en Kafka-utdatabindning för att skriva från din funktion till ett ämne. Information om konfiguration och konfigurationsinformation finns i Översikt över Apache Kafka-bindningar för Azure Functions.
Viktigt!
Kafka-bindningar är endast tillgängliga för Functions i planen Elastic Premium Plan and Dedicated (App Service). De stöds endast på version 3.x och senare version av Functions-körningen.
Exempel
Användningen av utlösaren beror på den C#-modalitet som används i funktionsappen, vilket kan vara något av följande lägen:
Ett isolerat arbetsprocessklassbibliotek kompilerade C#-funktioner körs i en process som är isolerad från körningen.
Vilka attribut du använder beror på den specifika händelseprovidern.
I följande exempel visas en C#-funktion som läser och loggar Kafka-meddelandet som en Kafka-händelse:
[Function("KafkaTrigger")]
public static void Run(
[KafkaTrigger("BrokerList",
"topic",
Username = "ConfluentCloudUserName",
Password = "ConfluentCloudPassword",
Protocol = BrokerProtocol.SaslSsl,
AuthenticationMode = BrokerAuthenticationMode.Plain,
ConsumerGroup = "$Default")] string eventData, FunctionContext context)
{
var logger = context.GetLogger("KafkaFunction");
logger.LogInformation($"C# Kafka trigger function processed a message: {JObject.Parse(eventData)["Value"]}");
}
Om du vill ta emot händelser i en batch använder du en strängmatris som indata, som du ser i följande exempel:
[Function("KafkaTriggerMany")]
public static void Run(
[KafkaTrigger("BrokerList",
"topic",
Username = "ConfluentCloudUserName",
Password = "ConfluentCloudPassword",
Protocol = BrokerProtocol.SaslSsl,
AuthenticationMode = BrokerAuthenticationMode.Plain,
ConsumerGroup = "$Default",
IsBatched = true)] string[] events, FunctionContext context)
{
foreach (var kevent in events)
{
var logger = context.GetLogger("KafkaFunction");
logger.LogInformation($"C# Kafka trigger function processed a message: {JObject.Parse(kevent)["Value"]}");
}
Följande funktion loggar meddelandet och rubrikerna för Kafka-händelsen:
[Function("KafkaTriggerWithHeaders")]
public static void Run(
[KafkaTrigger("BrokerList",
"topic",
Username = "ConfluentCloudUserName",
Password = "ConfluentCloudPassword",
Protocol = BrokerProtocol.SaslSsl,
AuthenticationMode = BrokerAuthenticationMode.Plain,
ConsumerGroup = "$Default")] string eventData, FunctionContext context)
{
var eventJsonObject = JObject.Parse(eventData);
var logger = context.GetLogger("KafkaFunction");
logger.LogInformation($"C# Kafka trigger function processed a message: {eventJsonObject["Value"]}");
var headersJArr = eventJsonObject["Headers"] as JArray;
logger.LogInformation("Headers for this event: ");
foreach (JObject header in headersJArr)
{
logger.LogInformation($"{header["Key"]} {System.Text.Encoding.UTF8.GetString((byte[])header["Value"])}");
}
}
En fullständig uppsättning fungerande .NET-exempel finns i Kafka-tilläggets lagringsplats.
Kommentar
En motsvarande uppsättning TypeScript-exempel finns i Kafka-tilläggslagringsplatsen
De specifika egenskaperna för function.json-filen beror på din händelseprovider, som i dessa exempel antingen är Confluent eller Azure Event Hubs. I följande exempel visas en Kafka-utlösare för en funktion som läser och loggar ett Kafka-meddelande.
Följande function.json definierar utlösaren för den specifika providern:
{
"bindings": [
{
"type": "kafkaTrigger",
"name": "event",
"direction": "in",
"topic": "topic",
"brokerList": "%BrokerList%",
"username": "%ConfluentCloudUserName%",
"password": "%ConfluentCloudPassword%",
"protocol": "saslSsl",
"authenticationMode": "plain",
"consumerGroup" : "$Default",
"dataType": "string"
}
]
}
Följande kod körs sedan när funktionen utlöses:
module.exports = async function (context, event) {
// context.log.info(event)
context.log.info(`JavaScript Kafka trigger function called for message ${event.Value}`);
};
Om du vill ta emot händelser i en batch anger du cardinality
värdet till many
i filen function.json, enligt följande exempel:
{
"bindings": [
{
"type": "kafkaTrigger",
"name": "event",
"direction": "in",
"protocol" : "SASLSSL",
"password" : "%ConfluentCloudPassword%",
"dataType" : "string",
"topic" : "topic",
"authenticationMode" : "PLAIN",
"cardinality" : "MANY",
"consumerGroup" : "$Default",
"username" : "%ConfluentCloudUserName%",
"brokerList" : "%BrokerList%"
}
]
}
Följande kod parsar sedan matrisen med händelser och loggar händelsedata:
module.exports = async function (context, events) {
function print(event) {
var eventJson = JSON.parse(event)
context.log.info(`JavaScript Kafka trigger function called for message ${eventJson.Value}`);
}
events.map(print);
};
Följande kod loggar även huvuddata:
module.exports = async function (context, event) {
function print(kevent) {
var keventJson = JSON.parse(kevent)
context.log.info(`JavaScript Kafka trigger function called for message ${keventJson.Value}`);
context.log.info(`Headers for this message:`)
let headers = keventJson.Headers;
headers.forEach(element => {
context.log.info(`Key: ${element.Key} Value:${Buffer.from(element.Value, 'base64')}`)
});
}
event.map(print);
};
Du kan definiera ett allmänt Avro-schema för händelsen som skickas till utlösaren. Följande function.json definierar utlösaren för den specifika providern med ett allmänt Avro-schema:
{
"bindings" : [ {
"type" : "kafkaTrigger",
"direction" : "in",
"name" : "kafkaAvroGenericSingle",
"protocol" : "SASLSSL",
"password" : "ConfluentCloudPassword",
"topic" : "topic",
"avroSchema" : "{\"type\":\"record\",\"name\":\"Payment\",\"namespace\":\"io.confluent.examples.clients.basicavro\",\"fields\":[{\"name\":\"id\",\"type\":\"string\"},{\"name\":\"amount\",\"type\":\"double\"},{\"name\":\"type\",\"type\":\"string\"}]}",
"authenticationMode" : "PLAIN",
"consumerGroup" : "$Default",
"username" : "ConfluentCloudUsername",
"brokerList" : "%BrokerList%"
} ]
}
Följande kod körs sedan när funktionen utlöses:
module.exports = async function (context, event) {
context.log.info(`JavaScript Kafka trigger function called for message ${JSON.stringify(event)}`);
};
En fullständig uppsättning fungerande JavaScript-exempel finns i Kafka-tilläggets lagringsplats.
De specifika egenskaperna för function.json-filen beror på din händelseprovider, som i dessa exempel antingen är Confluent eller Azure Event Hubs. I följande exempel visas en Kafka-utlösare för en funktion som läser och loggar ett Kafka-meddelande.
Följande function.json definierar utlösaren för den specifika providern:
{
"bindings": [
{
"type": "kafkaTrigger",
"name": "kafkaEvent",
"direction": "in",
"protocol" : "SASLSSL",
"password" : "%ConfluentCloudPassword%",
"dataType" : "string",
"topic" : "topic",
"authenticationMode" : "PLAIN",
"consumerGroup" : "$Default",
"username" : "%ConfluentCloudUserName%",
"brokerList" : "%BrokerList%",
"sslCaLocation": "confluent_cloud_cacert.pem"
}
]
}
Följande kod körs sedan när funktionen utlöses:
using namespace System.Net
param($kafkaEvent, $TriggerMetadata)
Write-Output "Powershell Kafka trigger function called for message $kafkaEvent.Value"
Om du vill ta emot händelser i en batch anger du cardinality
värdet till many
i filen function.json, enligt följande exempel:
{
"bindings": [
{
"type": "kafkaTrigger",
"name": "kafkaEvent",
"direction": "in",
"protocol" : "SASLSSL",
"password" : "%ConfluentCloudPassword%",
"dataType" : "string",
"topic" : "topic",
"authenticationMode" : "PLAIN",
"cardinality" : "MANY",
"consumerGroup" : "$Default",
"username" : "%ConfluentCloudUserName%",
"brokerList" : "%BrokerList%",
"sslCaLocation": "confluent_cloud_cacert.pem"
}
]
}
Följande kod parsar sedan matrisen med händelser och loggar händelsedata:
using namespace System.Net
param($kafkaEvents, $TriggerMetadata)
$kafkaEvents
foreach ($kafkaEvent in $kafkaEvents) {
$event = $kafkaEvent | ConvertFrom-Json -AsHashtable
Write-Output "Powershell Kafka trigger function called for message $event.Value"
}
Följande kod loggar även huvuddata:
using namespace System.Net
param($kafkaEvents, $TriggerMetadata)
foreach ($kafkaEvent in $kafkaEvents) {
$kevent = $kafkaEvent | ConvertFrom-Json -AsHashtable
Write-Output "Powershell Kafka trigger function called for message $kevent.Value"
Write-Output "Headers for this message:"
foreach ($header in $kevent.Headers) {
$DecodedValue = [System.Text.Encoding]::Unicode.GetString([System.Convert]::FromBase64String($header.Value))
$Key = $header.Key
Write-Output "Key: $Key Value: $DecodedValue"
}
}
Du kan definiera ett allmänt Avro-schema för händelsen som skickas till utlösaren. Följande function.json definierar utlösaren för den specifika providern med ett allmänt Avro-schema:
{
"bindings" : [ {
"type" : "kafkaTrigger",
"direction" : "in",
"name" : "kafkaEvent",
"protocol" : "SASLSSL",
"password" : "ConfluentCloudPassword",
"topic" : "topic",
"authenticationMode" : "PLAIN",
"avroSchema" : "{\"type\":\"record\",\"name\":\"Payment\",\"namespace\":\"io.confluent.examples.clients.basicavro\",\"fields\":[{\"name\":\"id\",\"type\":\"string\"},{\"name\":\"amount\",\"type\":\"double\"},{\"name\":\"type\",\"type\":\"string\"}]}",
"consumerGroup" : "$Default",
"username" : "ConfluentCloudUsername",
"brokerList" : "%BrokerList%"
} ]
}
Följande kod körs sedan när funktionen utlöses:
using namespace System.Net
param($kafkaEvent, $TriggerMetadata)
Write-Output "Powershell Kafka trigger function called for message $kafkaEvent.Value"
En fullständig uppsättning fungerande PowerShell-exempel finns i Kafka-tilläggets lagringsplats.
De specifika egenskaperna för function.json-filen beror på din händelseprovider, som i dessa exempel antingen är Confluent eller Azure Event Hubs. I följande exempel visas en Kafka-utlösare för en funktion som läser och loggar ett Kafka-meddelande.
Följande function.json definierar utlösaren för den specifika providern:
{
"scriptFile": "main.py",
"bindings": [
{
"type": "kafkaTrigger",
"name": "kevent",
"topic": "topic",
"brokerList": "%BrokerList%",
"username": "%ConfluentCloudUserName%",
"password": "%ConfluentCloudPassword%",
"consumerGroup" : "functions",
"protocol": "saslSsl",
"authenticationMode": "plain"
}
]
}
Följande kod körs sedan när funktionen utlöses:
import logging
from azure.functions import KafkaEvent
def main(kevent : KafkaEvent):
logging.info(kevent.get_body().decode('utf-8'))
logging.info(kevent.metadata)
Om du vill ta emot händelser i en batch anger du cardinality
värdet till many
i filen function.json, enligt följande exempel:
{
"scriptFile": "main.py",
"bindings": [
{
"type" : "kafkaTrigger",
"direction": "in",
"name" : "kevents",
"protocol" : "SASLSSL",
"password" : "%ConfluentCloudPassword%",
"topic" : "message_python",
"authenticationMode" : "PLAIN",
"cardinality" : "MANY",
"dataType": "string",
"consumerGroup" : "$Default",
"username" : "%ConfluentCloudUserName%",
"BrokerList" : "%BrokerList%"
}
]
}
Följande kod parsar sedan matrisen med händelser och loggar händelsedata:
import logging
import typing
from azure.functions import KafkaEvent
def main(kevents : typing.List[KafkaEvent]):
for event in kevents:
logging.info(event.get_body())
Följande kod loggar även huvuddata:
import logging
import typing
from azure.functions import KafkaEvent
import json
import base64
def main(kevents : typing.List[KafkaEvent]):
for event in kevents:
event_dec = event.get_body().decode('utf-8')
event_json = json.loads(event_dec)
logging.info("Python Kafka trigger function called for message " + event_json["Value"])
headers = event_json["Headers"]
for header in headers:
logging.info("Key: "+ header['Key'] + " Value: "+ str(base64.b64decode(header['Value']).decode('ascii')))
Du kan definiera ett allmänt Avro-schema för händelsen som skickas till utlösaren. Följande function.json definierar utlösaren för den specifika providern med ett allmänt Avro-schema:
{
"scriptFile": "main.py",
"bindings" : [ {
"type" : "kafkaTrigger",
"direction" : "in",
"name" : "kafkaTriggerAvroGeneric",
"protocol" : "SASLSSL",
"password" : "ConfluentCloudPassword",
"topic" : "topic",
"authenticationMode" : "PLAIN",
"avroSchema" : "{\"type\":\"record\",\"name\":\"Payment\",\"namespace\":\"io.confluent.examples.clients.basicavro\",\"fields\":[{\"name\":\"id\",\"type\":\"string\"},{\"name\":\"amount\",\"type\":\"double\"},{\"name\":\"type\",\"type\":\"string\"}]}",
"consumerGroup" : "$Default",
"username" : "ConfluentCloudUsername",
"brokerList" : "%BrokerList%"
} ]
}
Följande kod körs sedan när funktionen utlöses:
import logging
from azure.functions import KafkaEvent
def main(kafkaTriggerAvroGeneric : KafkaEvent):
logging.info(kafkaTriggerAvroGeneric.get_body().decode('utf-8'))
logging.info(kafkaTriggerAvroGeneric.metadata)
En fullständig uppsättning fungerande Python-exempel finns i Kafka-tilläggslagringsplatsen.
De anteckningar som du använder för att konfigurera utlösaren beror på den specifika händelseprovidern.
I följande exempel visas en Java-funktion som läser och loggar innehållet i Kafka-händelsen:
@FunctionName("KafkaTrigger")
public void runSingle(
@KafkaTrigger(
name = "KafkaTrigger",
topic = "topic",
brokerList="%BrokerList%",
consumerGroup="$Default",
username = "%ConfluentCloudUsername%",
password = "ConfluentCloudPassword",
authenticationMode = BrokerAuthenticationMode.PLAIN,
protocol = BrokerProtocol.SASLSSL,
// sslCaLocation = "confluent_cloud_cacert.pem", // Enable this line for windows.
dataType = "string"
) String kafkaEventData,
final ExecutionContext context) {
context.getLogger().info(kafkaEventData);
}
Om du vill ta emot händelser i en batch använder du en indatasträng som en matris, enligt följande exempel:
@FunctionName("KafkaTriggerMany")
public void runMany(
@KafkaTrigger(
name = "kafkaTriggerMany",
topic = "topic",
brokerList="%BrokerList%",
consumerGroup="$Default",
username = "%ConfluentCloudUsername%",
password = "ConfluentCloudPassword",
authenticationMode = BrokerAuthenticationMode.PLAIN,
protocol = BrokerProtocol.SASLSSL,
// sslCaLocation = "confluent_cloud_cacert.pem", // Enable this line for windows.
cardinality = Cardinality.MANY,
dataType = "string"
) String[] kafkaEvents,
final ExecutionContext context) {
for (String kevent: kafkaEvents) {
context.getLogger().info(kevent);
}
}
Följande funktion loggar meddelandet och rubrikerna för Kafka-händelsen:
@FunctionName("KafkaTriggerManyWithHeaders")
public void runSingle(
@KafkaTrigger(
name = "KafkaTrigger",
topic = "topic",
brokerList="%BrokerList%",
consumerGroup="$Default",
username = "%ConfluentCloudUsername%",
password = "ConfluentCloudPassword",
authenticationMode = BrokerAuthenticationMode.PLAIN,
protocol = BrokerProtocol.SASLSSL,
// sslCaLocation = "confluent_cloud_cacert.pem", // Enable this line for windows.
dataType = "string",
cardinality = Cardinality.MANY
) List<String> kafkaEvents,
final ExecutionContext context) {
Gson gson = new Gson();
for (String keventstr: kafkaEvents) {
KafkaEntity kevent = gson.fromJson(keventstr, KafkaEntity.class);
context.getLogger().info("Java Kafka trigger function called for message: " + kevent.Value);
context.getLogger().info("Headers for the message:");
for (KafkaHeaders header : kevent.Headers) {
String decodedValue = new String(Base64.getDecoder().decode(header.Value));
context.getLogger().info("Key:" + header.Key + " Value:" + decodedValue);
}
}
}
Du kan definiera ett allmänt Avro-schema för händelsen som skickas till utlösaren. Följande funktion definierar en utlösare för den specifika providern med ett allmänt Avro-schema:
private static final String schema = "{\"type\":\"record\",\"name\":\"Payment\",\"namespace\":\"io.confluent.examples.clients.basicavro\",\"fields\":[{\"name\":\"id\",\"type\":\"string\"},{\"name\":\"amount\",\"type\":\"double\"},{\"name\":\"type\",\"type\":\"string\"}]}";
@FunctionName("KafkaAvroGenericTrigger")
public void runOne(
@KafkaTrigger(
name = "kafkaAvroGenericSingle",
topic = "topic",
brokerList="%BrokerList%",
consumerGroup="$Default",
username = "ConfluentCloudUsername",
password = "ConfluentCloudPassword",
avroSchema = schema,
authenticationMode = BrokerAuthenticationMode.PLAIN,
protocol = BrokerProtocol.SASLSSL) Payment payment,
final ExecutionContext context) {
context.getLogger().info(payment.toString());
}
En fullständig uppsättning fungerande Java-exempel för Confluent finns i Kafka-tilläggets lagringsplats.
Attribut
C#-bibliotek för både process- och isolerad arbetsprocess använder för att definiera funktionsutlösaren KafkaTriggerAttribute
.
I följande tabell förklaras de egenskaper som du kan ange med hjälp av det här utlösarattributet:
Parameter | Description |
---|---|
BrokerList | (Krävs) Listan över Kafka-koordinatorer som övervakas av utlösaren. Mer information finns i Anslutningar . |
Avsnitt | (Krävs) Det ämne som övervakas av utlösaren. |
ConsumerGroup | (Valfritt) Kafka-konsumentgrupp som används av utlösaren. |
AvroSchema | (Valfritt) Schema för en allmän post när du använder Avro-protokollet. |
AuthenticationMode | (Valfritt) Autentiseringsläget när du använder SASL-autentisering (Simple Authentication and Security Layer). De värden som stöds är Gssapi , Plain (standard), ScramSha256 , . ScramSha512 |
Användarnamn | (Valfritt) Användarnamnet för SASL-autentisering. Stöds inte när AuthenticationMode är Gssapi . Mer information finns i Anslutningar . |
Lösenord | (Valfritt) Lösenordet för SASL-autentisering. Stöds inte när AuthenticationMode är Gssapi . Mer information finns i Anslutningar . |
Protokoll | (Valfritt) Säkerhetsprotokollet som används vid kommunikation med asynkrona meddelandeköer. De värden som stöds är plaintext (standard), ssl , sasl_plaintext , sasl_ssl . |
SslCaLocation | (Valfritt) Sökväg till CA-certifikatfilen för att verifiera asynkron meddelandekös certifikat. |
SslCertificateLocation | (Valfritt) Sökväg till klientens certifikat. |
SslKeyLocation | (Valfritt) Sökväg till klientens privata nyckel (PEM) som används för autentisering. |
SslKeyPassword | (Valfritt) Lösenord för klientens certifikat. |
Kommentarer
Med anteckningen KafkaTrigger
kan du skapa en funktion som körs när ett ämne tas emot. Alternativen som stöds omfattar följande element:
Element | Description |
---|---|
Namn | (Krävs) Namnet på variabeln som representerar kön eller ämnesmeddelandet i funktionskoden. |
brokerList | (Krävs) Listan över Kafka-koordinatorer som övervakas av utlösaren. Mer information finns i Anslutningar . |
Avsnitt | (Krävs) Det ämne som övervakas av utlösaren. |
kardinalitet | (Valfritt) Anger kardinaliteten för utlösarindata. De värden som stöds är ONE (standard) och MANY . Använd ONE när indata är ett enda meddelande och MANY när indata är en matris med meddelanden. När du använder MANY måste du också ange en dataType . |
Datatyp | Definierar hur Functions hanterar parametervärdet. Som standard hämtas värdet som en sträng och Functions försöker deserialisera strängen till det faktiska oformaterade Java-objektet (POJO). När string behandlas indata som bara en sträng. När binary tas meddelandet emot som binära data och Functions försöker deserialisera det till en faktisk parametertyp byte[]. |
consumerGroup | (Valfritt) Kafka-konsumentgrupp som används av utlösaren. |
avroSchema | (Valfritt) Schema för en allmän post när du använder Avro-protokollet. |
authenticationMode | (Valfritt) Autentiseringsläget när du använder SASL-autentisering (Simple Authentication and Security Layer). De värden som stöds är Gssapi , Plain (standard), ScramSha256 , . ScramSha512 |
användarnamn | (Valfritt) Användarnamnet för SASL-autentisering. Stöds inte när AuthenticationMode är Gssapi . Mer information finns i Anslutningar . |
lösenord | (Valfritt) Lösenordet för SASL-autentisering. Stöds inte när AuthenticationMode är Gssapi . Mer information finns i Anslutningar . |
protokoll | (Valfritt) Säkerhetsprotokollet som används vid kommunikation med asynkrona meddelandeköer. De värden som stöds är plaintext (standard), ssl , sasl_plaintext , sasl_ssl . |
sslCaLocation | (Valfritt) Sökväg till CA-certifikatfilen för att verifiera asynkron meddelandekös certifikat. |
sslCertificateLocation | (Valfritt) Sökväg till klientens certifikat. |
sslKeyLocation | (Valfritt) Sökväg till klientens privata nyckel (PEM) som används för autentisering. |
sslKeyPassword | (Valfritt) Lösenord för klientens certifikat. |
Konfiguration
I följande tabell förklaras de bindningskonfigurationsegenskaper som du anger i filen function.json .
egenskapen function.json | beskrivning |
---|---|
typ | (Krävs) Måste anges till kafkaTrigger . |
riktning | (Krävs) Måste anges till in . |
Namn | (Krävs) Namnet på variabeln som representerar de asynkrona data i funktionskoden. |
brokerList | (Krävs) Listan över Kafka-koordinatorer som övervakas av utlösaren. Mer information finns i Anslutningar . |
Avsnitt | (Krävs) Det ämne som övervakas av utlösaren. |
kardinalitet | (Valfritt) Anger kardinaliteten för utlösarindata. De värden som stöds är ONE (standard) och MANY . Använd ONE när indata är ett enda meddelande och MANY när indata är en matris med meddelanden. När du använder MANY måste du också ange en dataType . |
Datatyp | Definierar hur Functions hanterar parametervärdet. Som standard hämtas värdet som en sträng och Functions försöker deserialisera strängen till det faktiska oformaterade Java-objektet (POJO). När string behandlas indata som bara en sträng. När binary tas meddelandet emot som binära data och Functions försöker deserialisera det till en faktisk parametertyp byte[]. |
consumerGroup | (Valfritt) Kafka-konsumentgrupp som används av utlösaren. |
avroSchema | (Valfritt) Schema för en allmän post när du använder Avro-protokollet. |
authenticationMode | (Valfritt) Autentiseringsläget när du använder SASL-autentisering (Simple Authentication and Security Layer). De värden som stöds är Gssapi , Plain (standard), ScramSha256 , . ScramSha512 |
användarnamn | (Valfritt) Användarnamnet för SASL-autentisering. Stöds inte när AuthenticationMode är Gssapi . Mer information finns i Anslutningar . |
lösenord | (Valfritt) Lösenordet för SASL-autentisering. Stöds inte när AuthenticationMode är Gssapi . Mer information finns i Anslutningar . |
protokoll | (Valfritt) Säkerhetsprotokollet som används vid kommunikation med asynkrona meddelandeköer. De värden som stöds är plaintext (standard), ssl , sasl_plaintext , sasl_ssl . |
sslCaLocation | (Valfritt) Sökväg till CA-certifikatfilen för att verifiera asynkron meddelandekös certifikat. |
sslCertificateLocation | (Valfritt) Sökväg till klientens certifikat. |
sslKeyLocation | (Valfritt) Sökväg till klientens privata nyckel (PEM) som används för autentisering. |
sslKeyPassword | (Valfritt) Lösenord för klientens certifikat. |
Användning
Kafka-händelser stöds för närvarande som strängar och strängmatriser som är JSON-nyttolaster.
Kafka-meddelanden skickas till funktionen som strängar och strängmatriser som är JSON-nyttolaster.
I en Premium-plan måste du aktivera körningsskalningsövervakning för att Kafka-utdata ska kunna skalas ut till flera instanser. Mer information finns i Aktivera körningsskalning.
Du kan inte använda funktionen Test/Kör på sidan Kod + Test i Azure-portalen för att arbeta med Kafka-utlösare. Du måste i stället skicka testhändelser direkt till det ämne som övervakas av utlösaren.
En fullständig uppsättning host.json inställningar som stöds för Kafka-utlösaren finns i host.json inställningar.
anslutningar
All anslutningsinformation som krävs av dina utlösare och bindningar ska bevaras i programinställningarna och inte i bindningsdefinitionerna i koden. Detta gäller för autentiseringsuppgifter, som aldrig ska lagras i koden.
Viktigt!
Inställningar för autentiseringsuppgifter måste referera till en programinställning. Hårdkoda inte autentiseringsuppgifter i koden eller konfigurationsfilerna. När du kör lokalt använder du filen local.settings.json för dina autentiseringsuppgifter och publicerar inte local.settings.json-filen.
När du ansluter till ett hanterat Kafka-kluster som tillhandahålls av Confluent i Azure kontrollerar du att följande autentiseringsuppgifter för Confluent Cloud-miljön anges i utlösaren eller bindningen:
Inställning | Rekommenderat värde | beskrivning |
---|---|---|
BrokerList | BootstrapServer |
Appinställningen med namnet BootstrapServer innehåller värdet för bootstrap-servern som finns på sidan Inställningar för Confluent Cloud. Värdet liknar xyz-xyzxzy.westeurope.azure.confluent.cloud:9092 . |
Användarnamn | ConfluentCloudUsername |
Appinställningen med namnet ConfluentCloudUsername innehåller API-åtkomstnyckeln från Confluent Cloud-webbplatsen. |
Lösenord | ConfluentCloudPassword |
Appinställningen med namnet ConfluentCloudPassword innehåller API-hemligheten som hämtats från Confluent Cloud-webbplatsen. |
Strängvärdena som du använder för de här inställningarna måste finnas som programinställningar i Azure eller i Values
samlingen i filen local.settings.json under den lokala utvecklingen.
Du bör också ange Protocol
, AuthenticationMode
och SslCaLocation
i bindningsdefinitionerna.