Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Verwenden Sie den Apache Kafka-Trigger in Azure Functions, um Ihren Funktionscode als Reaktion auf Nachrichten in Kafka-Themen auszuführen. Sie können außerdem eine Kafka-Ausgabebindung verwenden, um aus Ihrer Funktion in ein Thema zu schreiben. Ausführliche Informationen zur Einrichtung und Konfiguration finden Sie unter Übersicht über Apache Kafka-Bindungen für Azure Functions.
Wichtig
Kafka-Bindungen sind für Funktionen im Flex Consumption-Plan, Elastic Premium Plan und Dedicated (App Service)-Plan verfügbar. Sie werden nur in Version 4.x der Funktionslaufzeit unterstützt.
Beispiel
Die Verwendung des Triggers hängt von der C#-Modalität ab, die in Ihrer Funktions-App verwendet wird. Dies kann einer der folgenden Modi sein:
Eine kompilierte C#-Funktion, die eine klassenbibliothek für isolierten Arbeitsprozess verwendet, die in einem Prozess ausgeführt wird, der von der Laufzeit getrennt ist.
Die von Ihnen verwendeten Attribute hängen vom jeweiligen Ereignisanbieter ab.
Das folgende Beispiel zeigt eine C#-Funktion, die die Kafka-Nachricht als Kafka-Ereignis liest und protokolliert:
[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"]}");
}
Um Ereignisse in einem Batch zu empfangen, verwenden Sie ein Zeichenfolgenarray als Eingabe, wie im folgenden Beispiel gezeigt:
[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"]}");
}
Die folgende Funktion protokolliert die Nachricht und die Header für das Kafka-Ereignis:
[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"])}");
}
}
Eine vollständige Sammlung funktionierender .NET-Beispiele finden Sie im Kafka-Erweiterungsrepository.
Die Verwendung des Triggers hängt von Ihrer Version des Node.js Programmiermodells ab.
Im Node.js v4-Modell definieren Sie den Trigger direkt im Funktionscode. Weitere Informationen finden Sie im Node.js-Entwicklerhandbuch für Azure Functions.
In diesen Beispielen sind die Ereignisanbieter entweder Confluent oder Azure Event Hubs. In diesen Beispielen wird gezeigt, wie Sie einen Kafka-Trigger für eine Funktion definieren, die eine Kafka-Nachricht liest.
const { app } = require("@azure/functions");
async function kafkaTrigger(event, context) {
context.log("Event Offset: " + event.Offset);
context.log("Event Partition: " + event.Partition);
context.log("Event Topic: " + event.Topic);
context.log("Event Timestamp: " + event.Timestamp);
context.log("Event Key: " + event.Key);
context.log("Event Value (as string): " + event.Value);
let event_obj = JSON.parse(event.Value);
context.log("Event Value Object: ");
context.log(" Value.registertime: ", event_obj.registertime.toString());
context.log(" Value.userid: ", event_obj.userid);
context.log(" Value.regionid: ", event_obj.regionid);
context.log(" Value.gender: ", event_obj.gender);
}
app.generic("Kafkatrigger", {
trigger: {
type: "kafkaTrigger",
direction: "in",
name: "event",
topic: "topic",
brokerList: "%BrokerList%",
username: "%ConfluentCloudUserName%",
password: "%ConfluentCloudPassword%",
consumerGroup: "$Default",
protocol: "saslSsl",
authenticationMode: "plain",
dataType: "string"
},
handler: kafkaTrigger,
});
Um Ereignisse in einem Batch zu empfangen, legen Sie den cardinality Wert auf many, wie in den folgenden Beispielen gezeigt:
const { app } = require("@azure/functions");
async function kafkaTriggerMany(events, context) {
for (const event of events) {
context.log("Event Offset: " + event.Offset);
context.log("Event Partition: " + event.Partition);
context.log("Event Topic: " + event.Topic);
context.log("Event Key: " + event.Key);
context.log("Event Timestamp: " + event.Timestamp);
context.log("Event Value (as string): " + event.Value);
let event_obj = JSON.parse(event.Value);
context.log("Event Value Object: ");
context.log(" Value.registertime: ", event_obj.registertime.toString());
context.log(" Value.userid: ", event_obj.userid);
context.log(" Value.regionid: ", event_obj.regionid);
context.log(" Value.gender: ", event_obj.gender);
}
}
app.generic("kafkaTriggerMany", {
trigger: {
type: "kafkaTrigger",
direction: "in",
name: "event",
topic: "topic",
brokerList: "%BrokerList%",
username: "%ConfluentCloudUserName%",
password: "%ConfluentCloudPassword%",
consumerGroup: "$Default",
protocol: "saslSsl",
authenticationMode: "plain",
dataType: "string",
cardinality: "MANY"
},
handler: kafkaTriggerMany,
});
Sie können ein generisches Avro-Schema für das an den Trigger übergebene Ereignis definieren. In diesem Beispiel wird der Trigger für den jeweiligen Anbieter mit einem generischen Avro-Schema definiert:
const { app } = require("@azure/functions");
async function kafkaAvroGenericTrigger(event, context) {
context.log("Processed kafka event: ", event);
if (context.triggerMetadata?.key !== undefined) {
context.log("message key: ", context.triggerMetadata?.key);
}
}
app.generic("kafkaAvroGenericTrigger", {
trigger: {
type: "kafkaTrigger",
direction: "in",
name: "event",
protocol: "SASLSSL",
password: "EventHubConnectionString",
dataType: "string",
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: "$ConnectionString",
brokerList: "%BrokerList%",
},
handler: kafkaAvroGenericTrigger,
});
Eine vollständige Sammlung funktionierender JavaScript-Beispiele finden Sie im Kafka-Erweiterungsrepository.
import { app, InvocationContext } from "@azure/functions";
// This is a sample interface that describes the actual data in your event.
interface EventData {
registertime: number;
userid: string;
regionid: string;
gender: string;
}
export async function kafkaTrigger(
event: any,
context: InvocationContext
): Promise<void> {
context.log("Event Offset: " + event.Offset);
context.log("Event Partition: " + event.Partition);
context.log("Event Topic: " + event.Topic);
context.log("Event Timestamp: " + event.Timestamp);
context.log("Event Value (as string): " + event.Value);
let event_obj: EventData = JSON.parse(event.Value);
context.log("Event Value Object: ");
context.log(" Value.registertime: ", event_obj.registertime.toString());
context.log(" Value.userid: ", event_obj.userid);
context.log(" Value.regionid: ", event_obj.regionid);
context.log(" Value.gender: ", event_obj.gender);
}
app.generic("Kafkatrigger", {
trigger: {
type: "kafkaTrigger",
direction: "in",
name: "event",
topic: "topic",
brokerList: "%BrokerList%",
username: "%ConfluentCloudUserName%",
password: "%ConfluentCloudPassword%",
consumerGroup: "$Default",
protocol: "saslSsl",
authenticationMode: "plain",
dataType: "string"
},
handler: kafkaTrigger,
});
Um Ereignisse in einem Batch zu empfangen, legen Sie den cardinality Wert auf many, wie in den folgenden Beispielen gezeigt:
import { app, InvocationContext } from "@azure/functions";
// This is a sample interface that describes the actual data in your event.
interface EventData {
registertime: number;
userid: string;
regionid: string;
gender: string;
}
interface KafkaEvent {
Offset: number;
Partition: number;
Topic: string;
Timestamp: number;
Value: string;
}
export async function kafkaTriggerMany(
events: any,
context: InvocationContext
): Promise<void> {
for (const event of events) {
context.log("Event Offset: " + event.Offset);
context.log("Event Partition: " + event.Partition);
context.log("Event Topic: " + event.Topic);
context.log("Event Timestamp: " + event.Timestamp);
context.log("Event Value (as string): " + event.Value);
let event_obj: EventData = JSON.parse(event.Value);
context.log("Event Value Object: ");
context.log(" Value.registertime: ", event_obj.registertime.toString());
context.log(" Value.userid: ", event_obj.userid);
context.log(" Value.regionid: ", event_obj.regionid);
context.log(" Value.gender: ", event_obj.gender);
}
}
app.generic("kafkaTriggerMany", {
trigger: {
type: "kafkaTrigger",
direction: "in",
name: "event",
topic: "topic",
brokerList: "%BrokerList%",
username: "%ConfluentCloudUserName%",
password: "%ConfluentCloudPassword%",
consumerGroup: "$Default",
protocol: "saslSsl",
authenticationMode: "plain",
dataType: "string",
cardinality: "MANY"
},
handler: kafkaTriggerMany,
});
Sie können ein generisches Avro-Schema für das an den Trigger übergebene Ereignis definieren. In diesem Beispiel wird der Trigger für den jeweiligen Anbieter mit einem generischen Avro-Schema definiert:
import { app, InvocationContext } from "@azure/functions";
export async function kafkaAvroGenericTrigger(
event: any,
context: InvocationContext
): Promise<void> {
context.log("Processed kafka event: ", event);
context.log(
`Message ID: ${event.id}, amount: ${event.amount}, type: ${event.type}`
);
if (context.triggerMetadata?.key !== undefined) {
context.log(`Message Key : ${context.triggerMetadata?.key}`);
}
}
app.generic("kafkaAvroGenericTrigger", {
trigger: {
type: "kafkaTrigger",
direction: "in",
name: "event",
protocol: "SASLSSL",
username: "ConfluentCloudUsername",
password: "ConfluentCloudPassword",
dataType: "string",
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",
brokerList: "%BrokerList%",
},
handler: kafkaAvroGenericTrigger,
});
Einen vollständigen Satz funktionierender TypeScript-Beispiele finden Sie im Kafka-Erweiterungs-Repository.
Die spezifischen Eigenschaften der function.json Datei hängen vom Ereignisanbieter ab. In diesen Beispielen sind die Ereignisanbieter entweder Confluent oder Azure Event Hubs. Die folgenden Beispiele zeigen einen Kafka-Trigger für eine Funktion, die eine Kafka-Nachricht liest und protokolliert.
Die folgende function.json Datei definiert den Trigger für den jeweiligen Anbieter:
{
"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"
}
]
}
Der folgende Code wird ausgeführt, wenn die Funktion ausgelöst wird:
using namespace System.Net
param($kafkaEvent, $TriggerMetadata)
Write-Output "Powershell Kafka trigger function called for message $kafkaEvent.Value"
Legen Sie zum Empfangen von Ereignissen in einem Batch den cardinality-Wert in der Datei „function.json“ auf many fest, wie in den folgenden Beispielen gezeigt:
{
"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"
}
]
}
Der folgende Code analysiert das Array von Ereignissen und protokolliert die Ereignisdaten:
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"
}
Der folgende Code protokolliert die Headerdaten:
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"
}
}
Sie können ein generisches Avro-Schema für das an den Trigger übergebene Ereignis definieren. Die folgende Datei „function.json“ definiert den Trigger für den spezifischen Anbieter mit einem generischen 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%"
} ]
}
Der folgende Code wird ausgeführt, wenn die Funktion ausgelöst wird:
using namespace System.Net
param($kafkaEvent, $TriggerMetadata)
Write-Output "Powershell Kafka trigger function called for message $kafkaEvent.Value"
Eine vollständige Sammlung funktionierender PowerShell-Beispiele finden Sie im Kafka-Erweiterungsrepository.
Die Verwendung des Triggers hängt von Ihrer Version des Python-Programmiermodells ab.
Im Python v2-Modell definieren Sie ihren Trigger direkt in Ihrem Funktionscode mithilfe von Dekoratoren. Weitere Informationen finden Sie im Entwicklerhandbuch für Azure Functions Python.
In diesen Beispielen wird gezeigt, wie Sie einen Kafka-Trigger für eine Funktion definieren, die eine Kafka-Nachricht liest.
@KafkaTrigger.function_name(name="KafkaTrigger")
@KafkaTrigger.kafka_trigger(
arg_name="kevent",
topic="KafkaTopic",
broker_list="KafkaBrokerList",
username="KafkaUsername",
password="KafkaPassword",
protocol="SaslSsl",
authentication_mode="Plain",
consumer_group="$Default1")
def kafka_trigger(kevent : func.KafkaEvent):
logging.info(kevent.get_body().decode('utf-8'))
logging.info(kevent.metadata)
In diesem Beispiel werden Ereignisse in einem Batch empfangen, indem der cardinality Wert auf many.
@KafkaTrigger.function_name(name="KafkaTriggerMany")
@KafkaTrigger.kafka_trigger(
arg_name="kevents",
topic="KafkaTopic",
broker_list="KafkaBrokerList",
username="KafkaUsername",
password="KafkaPassword",
protocol="SaslSsl",
authentication_mode="Plain",
cardinality="MANY",
data_type="string",
consumer_group="$Default2")
def kafka_trigger_many(kevents : typing.List[func.KafkaEvent]):
for event in kevents:
logging.info(event.get_body())
Sie können ein generisches Avro-Schema für das an den Trigger übergebene Ereignis definieren.
@KafkaTriggerAvro.function_name(name="KafkaTriggerAvroOne")
@KafkaTriggerAvro.kafka_trigger(
arg_name="kafkaTriggerAvroGeneric",
topic="KafkaTopic",
broker_list="KafkaBrokerList",
username="KafkaUsername",
password="KafkaPassword",
protocol="SaslSsl",
authentication_mode="Plain",
consumer_group="$Default",
avro_schema= "{\"type\":\"record\",\"name\":\"Payment\",\"namespace\":\"io.confluent.examples.clients.basicavro\",\"fields\":[{\"name\":\"id\",\"type\":\"string\"},{\"name\":\"amount\",\"type\":\"double\"},{\"name\":\"type\",\"type\":\"string\"}]}")
def kafka_trigger_avro_one(kafkaTriggerAvroGeneric : func.KafkaEvent):
logging.info(kafkaTriggerAvroGeneric.get_body().decode('utf-8'))
logging.info(kafkaTriggerAvroGeneric.metadata)
Eine vollständige Sammlung funktionierender Python-Beispiele finden Sie im Kafka-Erweiterungsrepository.
Die Anmerkungen, die Sie zum Konfigurieren Ihres Triggers verwenden, hängen vom jeweiligen Ereignisanbieter ab.
Das folgende Beispiel zeigt eine Java-Funktion, die den Inhalt des Kafka-Ereignisses liest und protokolliert:
@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);
}
Verwenden Sie zum Empfangen von Ereignissen in einem Batch eine Eingabezeichenfolge als Array, wie im folgenden Beispiel gezeigt:
@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);
}
}
Die folgende Funktion protokolliert die Nachricht und die Header für das Kafka-Ereignis:
@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);
}
}
}
Sie können ein generisches Avro-Schema für das an den Trigger übergebene Ereignis definieren. Die folgende Funktion definiert einen Trigger für den spezifischen Anbieter mit einem generischen 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());
}
Eine vollständige Sammlung funktionierender Java-Beispiele für Confluent finden Sie im Kafka-Erweiterungsrepository.
Attribute
Sowohl C#-Bibliotheken des Typs In-Process als auch C#-Bibliotheken des Typs Isolierter Workerprozess verwenden KafkaTriggerAttribute zum Definieren des Funktionstriggers.
In der folgenden Tabelle werden die Eigenschaften erläutert, die Sie mithilfe dieses Trigger-Attributs festlegen können:
| Parameter | BESCHREIBUNG |
|---|---|
| BrokerList | (Erforderlich) Die Liste der vom Trigger überwachten Kafka-Broker. Weitere Informationen finden Sie unter Verbindungen. |
| Thema | (Erforderlich) Das Thema, das vom Trigger überwacht wird. |
| ConsumerGroup | (Optional) Kafka-Consumergruppe, die vom Trigger verwendet wird. |
| AvroSchema | (Optional) Schema eines generischen Datensatzes von Nachrichtenwert bei Verwendung des Avro-Protokolls. |
| KeyAvroSchema | (Optional) Schema eines generischen Eintrags von Nachrichtenschlüsseln bei Verwendung des Avro-Protokolls. |
| KeyDataType | (Optional) Datentyp zum Empfangen des Nachrichtenschlüssels ab Kafka Topic. Wenn KeyAvroSchema dieser Wert festgelegt ist, ist dieser Wert generischer Datensatz. Akzeptierte Werte sind Int, Long, String, und Binary. |
| AuthenticationMode | (Optional) Der Authentifizierungsmodus bei Verwendung der SASL-Authentifizierung (Simple Authentication and Security Layer). Die unterstützten Werte sind NotSet (Standard), Gssapi, , Plain, ScramSha256, und OAuthBearerScramSha512. |
| Benutzername | (Optional) Der Benutzername für die SASL-Authentifizierung. Wird nicht unterstützt, wenn AuthenticationMode den Wert Gssapi aufweist. Weitere Informationen finden Sie unter Verbindungen. |
| Kennwort | (Optional) Das Kennwort für die SASL-Authentifizierung. Wird nicht unterstützt, wenn AuthenticationMode den Wert Gssapi aufweist. Weitere Informationen finden Sie unter Verbindungen. |
| Protokoll | (Optional) Das Sicherheitsprotokoll, das beim Kommunizieren mit Brokern verwendet wird. Die unterstützten Werte sind NotSet (Standard), plaintext, ssl, , sasl_plaintext. sasl_ssl |
| SslCaLocation | (Optional) Der Pfad zur Zertifikatdatei der Zertifizierungsstelle zum Überprüfen des Zertifikats des Brokers. |
| SslCertificateLocation | (Optional) Der Pfad zum Zertifikat des Clients. |
| SslKeyLocation | (Optional) Der Pfad zum privaten Schlüssel (PEM) des Clients, der für die Authentifizierung verwendet wird. |
| SslKeyPassword | (Optional) Das Kennwort für das Zertifikat des Clients. |
| SslCertificatePEM | (Optional) Clientzertifikat im PEM-Format als Zeichenfolge. Weitere Informationen finden Sie unter Verbindungen. |
| SslKeyPEM | (Optional) Privater Clientschlüssel im PEM-Format als Zeichenfolge. Weitere Informationen finden Sie unter Verbindungen. |
| SslCaPEM | (Optional) Zertifizierungsstellenzertifikat im PEM-Format als Zeichenfolge. Weitere Informationen finden Sie unter Verbindungen. |
| SslCertificateandKeyPEM | (Optional) Clientzertifikat und Schlüssel im PEM-Format als Zeichenfolge. Weitere Informationen finden Sie unter Verbindungen. |
| SchemaRegistryUrl | (Optional) URL für die Avro-Schemaregistrierung. Weitere Informationen finden Sie unter Verbindungen. |
| SchemaRegistryUsername | (Optional) Benutzername für die Avro-Schemaregistrierung. Weitere Informationen finden Sie unter Verbindungen. |
| SchemaRegistryPassword | (Optional) Kennwort für die Avro-Schemaregistrierung. Weitere Informationen finden Sie unter Verbindungen. |
| OAuthBearerMethod | (Optional) OAuth Bearer-Methode. Akzeptierte Werte sind oidc und default. |
| OAuthBearerClientId | (Optional) Wenn OAuthBearerMethod dieser Wert auf oidc festgelegt ist, gibt dies die OAuth-Bearer-Client-ID an. Weitere Informationen finden Sie unter Verbindungen. |
| OAuthBearerClientSecret | (Optional) Wenn OAuthBearerMethod dieser Wert auf oidc festgelegt ist, gibt dies den geheimen OAuth-Bearer-Clientschlüssel an. Weitere Informationen finden Sie unter Verbindungen. |
| OAuthBearerScope | (Optional) Gibt den Umfang der Zugriffsanforderung an den Broker an. |
| OAuthBearerTokenEndpointUrl | (Optional) OAuth/OIDC issuer token endpoint HTTP(S) URI used to retrieve token when oidc method is used. Weitere Informationen finden Sie unter Verbindungen. |
| OAuthBearerExtensions | (Optional) Kommagetrennte Liste der Schlüssel=Wertpaare, die als zusätzliche Informationen für den Broker bereitgestellt werden sollen, wenn oidc die Methode verwendet wird. Beispiel: supportFeatureX=true,organizationId=sales-emea. |
Anmerkungen
Mit der KafkaTrigger Anmerkung können Sie eine Funktion erstellen, die ausgeführt wird, wenn sie ein Thema empfängt. Unterstützte Optionen umfassen die folgenden Elemente:
| Element | BESCHREIBUNG |
|---|---|
| name | (Erforderlich) Der Name der Variablen, die die Warteschlangen- oder Themanachricht im Funktionscode darstellt. |
| brokerList | (Erforderlich) Die Liste der vom Trigger überwachten Kafka-Broker. Weitere Informationen finden Sie unter Verbindungen. |
| topic | (Erforderlich) Das Thema, das vom Trigger überwacht wird. |
| cardinality | (Optional) Gibt die Kardinalität der Triggereingabe an. Die unterstützte Werte lauten ONE (Standardwert) und MANY. Verwenden Sie ONE, wenn die Eingabe eine einzelne Nachricht ist und MANY, wenn die Eingabe ein Array von Nachrichten ist. Wenn Sie MANY verwenden, müssen Sie auch einen dataType festlegen. |
| dataType | Definiert, wie Functions den Parameterwert verarbeitet. Standardmäßig wird der Wert als Zeichenfolge abgerufen, und Functions versucht, die Zeichenfolge in das tatsächliche POJO (Plain-Old Java Object) zu deserialisieren. Bei string wird die Eingabe nur als Zeichenfolge behandelt. Bei binary wird die Nachricht als Binärdaten empfangen, und Functions versucht, sie in einen tatsächlichen Parametertyp byte[] zu deserialisieren. |
| consumerGroup | (Optional) Kafka-Consumergruppe, die vom Trigger verwendet wird. |
| avroSchema | (Optional) Das Schema eines generischen Datensatzes, wenn das Avro-Protokoll verwendet wird. |
| authenticationMode | (Optional) Der Authentifizierungsmodus bei Verwendung der SASL-Authentifizierung (Simple Authentication and Security Layer). Die unterstützten Werte sind NotSet (Standard), Gssapi, Plain, , ScramSha256. ScramSha512 |
| username | (Optional) Der Benutzername für die SASL-Authentifizierung. Wird nicht unterstützt, wenn AuthenticationMode den Wert Gssapi aufweist. Weitere Informationen finden Sie unter Verbindungen. |
| password | (Optional) Das Kennwort für die SASL-Authentifizierung. Wird nicht unterstützt, wenn AuthenticationMode den Wert Gssapi aufweist. Weitere Informationen finden Sie unter Verbindungen. |
| protocol | (Optional) Das Sicherheitsprotokoll, das beim Kommunizieren mit Brokern verwendet wird. Die unterstützten Werte sind NotSet (Standard), plaintext, ssl, , sasl_plaintext. sasl_ssl |
| sslCaLocation | (Optional) Der Pfad zur Zertifikatdatei der Zertifizierungsstelle zum Überprüfen des Zertifikats des Brokers. |
| sslCertificateLocation | (Optional) Der Pfad zum Zertifikat des Clients. |
| sslKeyLocation | (Optional) Der Pfad zum privaten Schlüssel (PEM) des Clients, der für die Authentifizierung verwendet wird. |
| sslKeyPassword | (Optional) Das Kennwort für das Zertifikat des Clients. |
| lagThreshold | (Optional) Verzögerungsschwellenwert für den Trigger. |
| schemaRegistryUrl | (Optional) URL für die Avro-Schemaregistrierung. Weitere Informationen finden Sie unter Verbindungen. |
| schemaRegistryUsername | (Optional) Benutzername für die Avro-Schemaregistrierung. Weitere Informationen finden Sie unter Verbindungen. |
| schemaRegistryPassword | (Optional) Kennwort für die Avro-Schemaregistrierung. Weitere Informationen finden Sie unter Verbindungen. |
Konfiguration
Die folgende Tabelle gibt Aufschluss über die Bindungskonfigurationseigenschaften, die Sie in der Datei function.json festlegen.
| function.json-Eigenschaft | BESCHREIBUNG |
|---|---|
| type | (Erforderlich) kafkaTriggerAuf . |
| direction | (Erforderlich) inAuf . |
| name | (Erforderlich) Der Name der Variablen, die die Brokerdaten im Funktionscode darstellt. |
| brokerList | (Erforderlich) Die Liste der vom Trigger überwachten Kafka-Broker. Weitere Informationen finden Sie unter Verbindungen. |
| topic | (Erforderlich) Das Thema, das vom Trigger überwacht wird. |
| cardinality | (Optional) Gibt die Kardinalität der Triggereingabe an. Die unterstützte Werte lauten ONE (Standardwert) und MANY. Verwenden Sie ONE, wenn die Eingabe eine einzelne Nachricht ist und MANY, wenn die Eingabe ein Array von Nachrichten ist. Wenn Sie MANY verwenden, müssen Sie auch einen dataType festlegen. |
| dataType | Definiert, wie Functions den Parameterwert verarbeitet. Standardmäßig wird der Wert als Zeichenfolge abgerufen, und Functions versucht, die Zeichenfolge in das tatsächliche POJO (Plain-Old Java Object) zu deserialisieren. Bei string wird die Eingabe nur als Zeichenfolge behandelt. Wenn binarydie Nachricht als Binärdaten empfangen wird und Funktionen versucht, sie auf einen tatsächlichen Bytearrayparametertyp zu deserialisieren. |
| consumerGroup | (Optional) Kafka-Consumergruppe, die vom Trigger verwendet wird. |
| avroSchema | (Optional) Das Schema eines generischen Datensatzes, wenn das Avro-Protokoll verwendet wird. |
| keyAvroSchema | (Optional) Schema eines generischen Eintrags von Nachrichtenschlüsseln bei Verwendung des Avro-Protokolls. |
| keyDataType | (Optional) Datentyp zum Empfangen des Nachrichtenschlüssels ab Kafka Topic. Wenn keyAvroSchema dieser Wert festgelegt ist, ist dieser Wert generischer Datensatz. Akzeptierte Werte sind Int, Long, String, und Binary. |
| authenticationMode | (Optional) Der Authentifizierungsmodus bei Verwendung der SASL-Authentifizierung (Simple Authentication and Security Layer). Die unterstützten Werte sind NotSet (Standard), Gssapi, Plain, , ScramSha256. ScramSha512 |
| username | (Optional) Der Benutzername für die SASL-Authentifizierung. Wird nicht unterstützt, wenn AuthenticationMode den Wert Gssapi aufweist. Weitere Informationen finden Sie unter Verbindungen. |
| password | (Optional) Das Kennwort für die SASL-Authentifizierung. Wird nicht unterstützt, wenn AuthenticationMode den Wert Gssapi aufweist. Weitere Informationen finden Sie unter Verbindungen. |
| protocol | (Optional) Das Sicherheitsprotokoll, das beim Kommunizieren mit Brokern verwendet wird. Die unterstützten Werte sind NotSet (Standard), plaintext, ssl, , sasl_plaintext. sasl_ssl |
| sslCaLocation | (Optional) Der Pfad zur Zertifikatdatei der Zertifizierungsstelle zum Überprüfen des Zertifikats des Brokers. |
| sslCertificateLocation | (Optional) Der Pfad zum Zertifikat des Clients. |
| sslKeyLocation | (Optional) Der Pfad zum privaten Schlüssel (PEM) des Clients, der für die Authentifizierung verwendet wird. |
| sslKeyPassword | (Optional) Das Kennwort für das Zertifikat des Clients. |
| sslCertificatePEM | (Optional) Clientzertifikat im PEM-Format als Zeichenfolge. Weitere Informationen finden Sie unter Verbindungen. |
| sslKeyPEM | (Optional) Privater Clientschlüssel im PEM-Format als Zeichenfolge. Weitere Informationen finden Sie unter Verbindungen. |
| sslCaPEM | (Optional) Zertifizierungsstellenzertifikat im PEM-Format als Zeichenfolge. Weitere Informationen finden Sie unter Verbindungen. |
| sslCertificateandKeyPEM | (Optional) Clientzertifikat und Schlüssel im PEM-Format als Zeichenfolge. Weitere Informationen finden Sie unter Verbindungen. |
| lagThreshold | (Optional) Verzögerungsschwellenwert für den Trigger. |
| schemaRegistryUrl | (Optional) URL für die Avro-Schemaregistrierung. Weitere Informationen finden Sie unter Verbindungen. |
| schemaRegistryUsername | (Optional) Benutzername für die Avro-Schemaregistrierung. Weitere Informationen finden Sie unter Verbindungen. |
| schemaRegistryPassword | (Optional) Kennwort für die Avro-Schemaregistrierung. Weitere Informationen finden Sie unter Verbindungen. |
| oAuthBearerMethod | (Optional) OAuth Bearer-Methode. Akzeptierte Werte sind oidc und default. |
| oAuthBearerClientId | (Optional) Wenn oAuthBearerMethod dieser Wert auf oidc festgelegt ist, gibt dies die OAuth-Bearer-Client-ID an. Weitere Informationen finden Sie unter Verbindungen. |
| oAuthBearerClientSecret | (Optional) Wenn oAuthBearerMethod dieser Wert auf oidc festgelegt ist, gibt dies den geheimen OAuth-Bearer-Clientschlüssel an. Weitere Informationen finden Sie unter Verbindungen. |
| oAuthBearerScope | (Optional) Gibt den Umfang der Zugriffsanforderung an den Broker an. |
| oAuthBearerTokenEndpointUrl | (Optional) OAuth/OIDC issuer token endpoint HTTP(S) URI used to retrieve token when oidc method is used. Weitere Informationen finden Sie unter Verbindungen. |
Konfiguration
Die folgende Tabelle gibt Aufschluss über die Bindungskonfigurationseigenschaften, die Sie in der Datei function.json festlegen. Python verwendet snake_case Benennungskonventionen für Konfigurationseigenschaften.
| function.json-Eigenschaft | BESCHREIBUNG |
|---|---|
| type | (Erforderlich) kafkaTriggerAuf . |
| direction | (Erforderlich) inAuf . |
| name | (Erforderlich) Der Name der Variablen, die die Brokerdaten im Funktionscode darstellt. |
| broker_list | (Erforderlich) Die Liste der vom Trigger überwachten Kafka-Broker. Weitere Informationen finden Sie unter Verbindungen. |
| topic | (Erforderlich) Das Thema, das vom Trigger überwacht wird. |
| cardinality | (Optional) Gibt die Kardinalität der Triggereingabe an. Die unterstützte Werte lauten ONE (Standardwert) und MANY. Verwenden Sie ONE, wenn die Eingabe eine einzelne Nachricht ist und MANY, wenn die Eingabe ein Array von Nachrichten ist. Wenn Sie MANY verwenden, müssen Sie auch einen data_type festlegen. |
| data_type | Definiert, wie Functions den Parameterwert verarbeitet. Standardmäßig wird der Wert als Zeichenfolge abgerufen, und Functions versucht, die Zeichenfolge in das tatsächliche POJO (Plain-Old Java Object) zu deserialisieren. Bei string wird die Eingabe nur als Zeichenfolge behandelt. Bei binary wird die Nachricht als Binärdaten empfangen, und Functions versucht, sie in einen tatsächlichen Parametertyp byte[] zu deserialisieren. |
| consumerGroup | (Optional) Kafka-Consumergruppe, die vom Trigger verwendet wird. |
| avroSchema | (Optional) Das Schema eines generischen Datensatzes, wenn das Avro-Protokoll verwendet wird. |
| authentication_mode | (Optional) Der Authentifizierungsmodus bei Verwendung der SASL-Authentifizierung (Simple Authentication and Security Layer). Die unterstützten Werte sind NOTSET (Standard), Gssapi, Plain, , ScramSha256. ScramSha512 |
| username | (Optional) Der Benutzername für die SASL-Authentifizierung. Wird nicht unterstützt, wenn authentication_mode den Wert Gssapi aufweist. Weitere Informationen finden Sie unter Verbindungen. |
| password | (Optional) Das Kennwort für die SASL-Authentifizierung. Wird nicht unterstützt, wenn authentication_mode den Wert Gssapi aufweist. Weitere Informationen finden Sie unter Verbindungen. |
| protocol | (Optional) Das Sicherheitsprotokoll, das beim Kommunizieren mit Brokern verwendet wird. Die unterstützten Werte sind NOTSET (Standard), plaintext, ssl, , sasl_plaintext. sasl_ssl |
| sslCaLocation | (Optional) Der Pfad zur Zertifikatdatei der Zertifizierungsstelle zum Überprüfen des Zertifikats des Brokers. |
| sslCertificateLocation | (Optional) Der Pfad zum Zertifikat des Clients. |
| sslKeyLocation | (Optional) Der Pfad zum privaten Schlüssel (PEM) des Clients, der für die Authentifizierung verwendet wird. |
| sslKeyPassword | (Optional) Das Kennwort für das Zertifikat des Clients. |
| lag_threshold | (Optional) Verzögerungsschwellenwert für den Trigger. |
| schema_registry_url | (Optional) URL für die Avro-Schemaregistrierung. Weitere Informationen finden Sie unter Verbindungen. |
| schema_registry_username | (Optional) Benutzername für die Avro-Schemaregistrierung. Weitere Informationen finden Sie unter Verbindungen. |
| schema_registry_password | (Optional) Kennwort für die Avro-Schemaregistrierung. Weitere Informationen finden Sie unter Verbindungen. |
| o_auth_bearer_method | (Optional) OAuth Bearer-Methode. Akzeptierte Werte sind oidc und default. |
| o_auth_bearer_client_id | (Optional) Wenn o_auth_bearer_method dieser Wert auf oidc festgelegt ist, gibt dies die OAuth-Bearer-Client-ID an. Weitere Informationen finden Sie unter Verbindungen. |
| o_auth_bearer_client_secret | (Optional) Wenn o_auth_bearer_method dieser Wert auf oidc festgelegt ist, gibt dies den geheimen OAuth-Bearer-Clientschlüssel an. Weitere Informationen finden Sie unter Verbindungen. |
| o_auth_bearer_scope | (Optional) Gibt den Umfang der Zugriffsanforderung an den Broker an. |
| o_auth_bearer_token_endpoint_url | (Optional) OAuth/OIDC issuer token endpoint HTTP(S) URI used to retrieve token when oidc method is used. Weitere Informationen finden Sie unter Verbindungen. |
Hinweis
Zertifikat-PEM-bezogene Eigenschaften und Avro-Schlüsseleigenschaften sind in der Python-Bibliothek noch nicht verfügbar.
Verwendung
Der Kafka-Trigger unterstützt derzeit Kafka-Ereignisse als Zeichenfolgen und Zeichenfolgenarrays, die JSON-Nutzlasten sind.
Der Kafka-Trigger übergibt Kafka-Nachrichten als Zeichenfolgen an die Funktion. Der Trigger unterstützt auch Zeichenfolgenarrays, die JSON-Nutzlasten sind.
In einem Premium-Plan müssen Sie die Überwachung der Laufzeitskala für die Kafka-Ausgabe aktivieren, um auf mehrere Instanzen zu skalieren. Weitere Informationen finden Sie unter Aktivieren der Laufzeitskalierung.
Sie können das Feature " Testen/Ausführen " der Seite "Code + Test " im Azure-Portal nicht verwenden, um mit Kafka-Triggern zu arbeiten. Sie müssen stattdessen Testereignisse direkt an das Thema senden, das vom Trigger überwacht wird.
Eine vollständige Liste der unterstützten host.json-Einstellungen für den Kafka-Trigger finden Sie unter host.json-Einstellungen.
Verbindungen
Speichern Sie alle Verbindungsinformationen, die von Ihren Triggern und Bindungen in Den Anwendungseinstellungen erforderlich sind, nicht in den Bindungsdefinitionen in Ihrem Code. Dieser Leitfaden gilt für Anmeldeinformationen, die Sie niemals in Ihrem Code speichern sollten.
Wichtig
Einstellungen für Anmeldeinformationen müssen auf eine Anwendungseinstellung verweisen. Stellen Sie keine hartcodierten Anmeldeinformationen in Ihrem Code oder Ihren Konfigurationsdateien bereit. Wenn die Ausführung lokal erfolgt, verwenden Sie die Datei local.settings.json für Ihre Anmeldeinformationen, und veröffentlichen Sie die Datei „local.settings.json“ nicht.
Wenn Sie eine Verbindung mit einem verwalteten Kafka-Cluster herstellen, der von Confluent in Azure bereitgestellt wird, können Sie eine der folgenden Authentifizierungsmethoden verwenden.
Hinweis
Bei Verwendung des Flex-Verbrauchsplans werden dateispeicherortbasierte Zertifikatauthentifizierungseigenschaften (SslCaLocation, SslCertificateLocation, SslKeyLocation) nicht unterstützt. Verwenden Sie stattdessen die PEM-basierten Zertifikateigenschaften (SslCaPEM, SslCertificatePEM, , SslKeyPEMSslCertificateandKeyPEM, ) oder speichern Sie Zertifikate in Azure Key Vault.
Schemaspeicher
Um die Schemaregistrierung zu verwenden, die von Confluent in kafka Extension bereitgestellt wird, legen Sie die folgenden Anmeldeinformationen fest:
| Einstellung | Empfohlener Wert | BESCHREIBUNG |
|---|---|---|
| SchemaRegistryUrl | SchemaRegistryUrl |
DIE URL des Schemaregistrierungsdiensts, der für die Schemaverwaltung verwendet wird. In der Regel des Formats https://psrc-xyz.us-east-2.aws.confluent.cloud |
| SchemaRegistryUsername | CONFLUENT_API_KEY |
Benutzername für die grundlegende Authentifizierung in der Schemaregistrierung (falls erforderlich). |
| SchemaRegistryPassword | CONFLUENT_API_SECRET |
Kennwort für die grundlegende Authentifizierung in der Schemaregistrierung (falls erforderlich). |
Benutzername/Kennwortauthentifizierung
Stellen Sie bei der Verwendung dieser Authentifizierungsform sicher, dass Protocol sie entweder SaslPlaintext oder SaslSsl, AuthenticationMode oder auf oder ScramSha256 festgelegt Plainist, oderScramSha512, und wenn das verwendete Zertifizierungsstellenzertifikat vom standardmäßigen ISRG Root X1-Zertifikat abweicht, stellen Sie sicher, dass Sie aktualisieren SslCaLocation oder SslCaPEM.
| Einstellung | Empfohlener Wert | BESCHREIBUNG |
|---|---|---|
| BrokerList | BootstrapServer |
Die App-Einstellung namens BootstrapServer enthält den Wert des Bootstrapservers, der auf der Seite mit den Confluent Cloud-Einstellungen gefunden wurde. Der Wert ähnelt xyz-xyzxzy.westeurope.azure.confluent.cloud:9092. |
| Benutzername | ConfluentCloudUsername |
Die App-Einstellung namens ConfluentCloudUsername enthält den API-Zugriffsschlüssel von der Confluent Cloud-Website. |
| Kennwort | ConfluentCloudPassword |
Die App-Einstellung namens ConfluentCloudPassword enthält das API-Geheimnis, das von der Confluent Cloud-Website abgerufen wurde. |
| SslCaPEM | SSLCaPemCertificate |
App-Einstellung, SSLCaPemCertificate die das Zertifizierungsstellenzertifikat als Zeichenfolge im PEM-Format enthält. Der Wert sollte dem Standardformat entsprechen, z. B.: -----BEGIN CERTIFICATE-----\nMII....JQ==\n-----END CERTIFICATE-----. |
SSL-Authentifizierung
Stellen Sie sicher, dass Protocol auf SSL eingestellt ist.
| Einstellung | Empfohlener Wert | BESCHREIBUNG |
|---|---|---|
| BrokerList | BootstrapServer |
Die App-Einstellung namens BootstrapServer enthält den Wert des Bootstrapservers, der auf der Seite mit den Confluent Cloud-Einstellungen gefunden wurde. Der Wert ähnelt xyz-xyzxzy.westeurope.azure.confluent.cloud:9092. |
| SslCaPEM | SslCaCertificatePem |
App-Einstellung mit SslCaCertificatePem dem Namen PEM-Wert des Zertifizierungsstellenzertifikats als Zeichenfolge. Der Wert sollte dem Standardformat entsprechen: -----BEGIN CERTIFICATE-----\nMII...JQ==\n-----END CERTIFICATE----- |
| SslCertificatePEM | SslClientCertificatePem |
App-Einstellung mit SslClientCertificatePem dem Namen PEM-Wert des Clientzertifikats als Zeichenfolge. Der Wert sollte dem Standardformat entsprechen: -----BEGIN CERTIFICATE-----\nMII...JQ==\n-----END CERTIFICATE----- |
| SslKeyPEM | SslClientKeyPem |
App-Einstellung mit SslClientKeyPem dem Namen PEM-Wert des privaten Clientschlüssels als Zeichenfolge. Der Wert sollte dem Standardformat entsprechen: -----BEGIN PRIVATE KEY-----\nMII...JQ==\n-----END PRIVATE KEY----- |
| SslCertificateandKeyPEM | SslClientCertificateAndKeyPem |
App-Einstellung mit SslClientCertificateAndKeyPem dem Namen PEM-Wert des Clientzertifikats und des privaten Clientschlüssels, die als Zeichenfolge verkettet sind. Der Wert sollte dem Standardformat entsprechen: -----BEGIN CERTIFICATE-----\nMII....JQ==\n-----END CERTIFICATE-----\n-----BEGIN PRIVATE KEY-----\nMIIE....BM=\n-----END PRIVATE KEY----- |
| SslKeyPassword | SslClientKeyPassword |
App-Einstellung mit dem Namen SslClientKeyPassword , die das Kennwort für den privaten Schlüssel enthält (falls vorhanden). |
OAuth-Authentifizierung
Konfigurieren Sie bei verwendung der OAuth-Authentifizierung die OAuth-bezogenen Eigenschaften in Ihren Bindungsdefinitionen.
Die für diese Einstellungen verwendeten Zeichenfolgenwerte müssen während der lokalen Entwicklung als Anwendungseinstellungen in Azure oder in der Values-Sammlung in der Datei local.settings.json vorhanden sein.
Außerdem sollten Sie die Protocol Bindungsdefinitionen und AuthenticationMode die Bindungsdefinitionen festlegen.