Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Użyj wyzwalacza platformy Apache Kafka w usłudze Azure Functions, aby uruchomić kod funkcji w odpowiedzi na komunikaty w tematach platformy Kafka. Możesz również użyć powiązania danych wyjściowych platformy Kafka do zapisu z funkcji do tematu. Aby uzyskać informacje na temat szczegółów konfiguracji i konfiguracji, zobacz Omówienie powiązań platformy Apache Kafka dla usługi Azure Functions.
Ważne
Powiązania platformy Kafka są dostępne dla funkcji w ramach planu Flex Consumption, planu Elastic Premium i planu dedykowanego (App Service). Są one obsługiwane tylko w wersji 4.x środowiska uruchomieniowego usługi Functions.
Przykład
Użycie wyzwalacza zależy od modalności języka C# używanej w aplikacji funkcji, co może być jednym z następujących trybów:
Skompilowana funkcja języka C#, która używa izolowanej biblioteki klas procesów roboczych , która jest uruchamiana w procesie oddzielonym od środowiska uruchomieniowego.
Używane atrybuty zależą od określonego dostawcy zdarzeń.
W poniższym przykładzie pokazano funkcję języka C#, która odczytuje i rejestruje komunikat platformy Kafka jako zdarzenie platformy Kafka:
[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"]}");
}
Aby odbierać zdarzenia w partii, użyj tablicy ciągów jako danych wejściowych, jak pokazano w poniższym przykładzie:
[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"]}");
}
Następująca funkcja rejestruje komunikat i nagłówki zdarzenia platformy Kafka:
[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"])}");
}
}
Pełny zestaw działających przykładów platformy .NET można znaleźć w repozytorium rozszerzeń platformy Kafka.
Użycie wyzwalacza zależy od używanej wersji modelu programowania Node.js.
W modelu Node.js w wersji 4 zdefiniujesz wyzwalacz bezpośrednio w kodzie funkcji. Aby uzyskać więcej informacji, zobacz Przewodnik dewelopera usługi Azure Functions Node.js.
W tych przykładach dostawcy zdarzeń to Confluent lub Azure Event Hubs. W tych przykładach pokazano, jak zdefiniować wyzwalacz platformy Kafka dla funkcji, która odczytuje komunikat platformy Kafka.
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,
});
Aby odbierać zdarzenia w partii, ustaw cardinality wartość manyna , jak pokazano w poniższych przykładach:
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,
});
Można zdefiniować ogólny schemat Avro dla zdarzenia przekazanego do wyzwalacza. W tym przykładzie zdefiniowano wyzwalacz dla określonego dostawcy z ogólnym schematem Avro:
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,
});
Pełny zestaw działających przykładów języka JavaScript można znaleźć w repozytorium rozszerzeń platformy Kafka.
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,
});
Aby odbierać zdarzenia w partii, ustaw cardinality wartość manyna , jak pokazano w poniższych przykładach:
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,
});
Można zdefiniować ogólny schemat Avro dla zdarzenia przekazanego do wyzwalacza. W tym przykładzie zdefiniowano wyzwalacz dla określonego dostawcy z ogólnym schematem Avro:
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,
});
Pełny zestaw działających przykładów języka TypeScript można znaleźć w repozytorium rozszerzeń platformy Kafka.
Określone właściwości function.json pliku zależą od dostawcy zdarzeń. W tych przykładach dostawcy zdarzeń to Confluent lub Azure Event Hubs. W poniższych przykładach pokazano wyzwalacz platformy Kafka dla funkcji, która odczytuje i rejestruje komunikat platformy Kafka.
Poniższy function.json plik definiuje wyzwalacz dla określonego dostawcy:
{
"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"
}
]
}
Następujący kod jest uruchamiany po wyzwoleniu funkcji:
using namespace System.Net
param($kafkaEvent, $TriggerMetadata)
Write-Output "Powershell Kafka trigger function called for message $kafkaEvent.Value"
Aby odbierać zdarzenia w partii, ustaw cardinality wartość na many w pliku function.json, jak pokazano w następujących przykładach:
{
"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"
}
]
}
Poniższy kod analizuje tablicę zdarzeń i rejestruje dane zdarzenia:
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"
}
Poniższy kod rejestruje dane nagłówka:
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"
}
}
Można zdefiniować ogólny schemat Avro dla zdarzenia przekazanego do wyzwalacza. Następujące function.json definiuje wyzwalacz dla określonego dostawcy z ogólnym schematem Avro:
{
"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%"
} ]
}
Następujący kod jest uruchamiany po wyzwoleniu funkcji:
using namespace System.Net
param($kafkaEvent, $TriggerMetadata)
Write-Output "Powershell Kafka trigger function called for message $kafkaEvent.Value"
Pełny zestaw działających przykładów programu PowerShell można znaleźć w repozytorium rozszerzeń platformy Kafka.
Użycie wyzwalacza zależy od używanej wersji modelu programowania w języku Python.
W modelu języka Python w wersji 2 zdefiniujesz wyzwalacz bezpośrednio w kodzie funkcji przy użyciu dekoratorów. Aby uzyskać więcej informacji, zobacz Przewodnik dla deweloperów języka Python usługi Azure Functions.
W tych przykładach pokazano, jak zdefiniować wyzwalacz platformy Kafka dla funkcji, która odczytuje komunikat platformy Kafka.
@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)
W tym przykładzie zdarzenia są odbierane w partii przez ustawienie cardinality wartości na 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())
Można zdefiniować ogólny schemat Avro dla zdarzenia przekazanego do wyzwalacza.
@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)
Pełny zestaw działających przykładów języka Python można znaleźć w repozytorium rozszerzeń platformy Kafka.
Adnotacje używane do konfigurowania wyzwalacza zależą od określonego dostawcy zdarzeń.
W poniższym przykładzie pokazano funkcję Języka Java, która odczytuje i rejestruje zawartość zdarzenia platformy Kafka:
@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);
}
Aby odbierać zdarzenia w partii, użyj ciągu wejściowego jako tablicy, jak pokazano w poniższym przykładzie:
@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);
}
}
Następująca funkcja rejestruje komunikat i nagłówki zdarzenia platformy Kafka:
@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);
}
}
}
Można zdefiniować ogólny schemat Avro dla zdarzenia przekazanego do wyzwalacza. Poniższa funkcja definiuje wyzwalacz dla określonego dostawcy z ogólnym schematem Avro:
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());
}
Pełny zestaw działających przykładów języka Java dla platformy Confluent można znaleźć w repozytorium rozszerzeń platformy Kafka.
Atrybuty
Biblioteki języka C# procesu roboczego zarówno w procesie przetwarzania procesów procesowych, jak i izolowanych, używają KafkaTriggerAttribute elementu , aby zdefiniować wyzwalacz funkcji.
W poniższej tabeli opisano właściwości, które można ustawić przy użyciu tego atrybutu wyzwalacza:
| Parametr | Opis |
|---|---|
| Lista brokerów | (Wymagane) Lista brokerów platformy Kafka monitorowanych przez wyzwalacz. Aby uzyskać więcej informacji, zobacz Połączenia . |
| Temat | (Wymagane) Temat monitorowany przez wyzwalacz. |
| ConsumerGroup | (Opcjonalnie) Grupa odbiorców platformy Kafka używana przez wyzwalacz. |
| AvroSchema | (Opcjonalnie) Schemat ogólnego rekordu wartości komunikatu podczas korzystania z protokołu Avro. |
| KeyAvroSchema | (Opcjonalnie) Schemat ogólnego rekordu klucza komunikatu podczas korzystania z protokołu Avro. |
| KeyDataType | (Opcjonalnie) Typ danych, aby odebrać klucz komunikatu z tematu platformy Kafka. Jeśli KeyAvroSchema jest ustawiona, ta wartość jest rekordem ogólnym. Akceptowane wartości to Int, , StringLongi Binary. |
| AuthenticationMode | (Opcjonalnie) Tryb uwierzytelniania podczas korzystania z uwierzytelniania prostego i warstwy zabezpieczeń (SASL). Obsługiwane wartości to NotSet (wartość domyślna), Gssapi, , PlainScramSha256, ScramSha512i OAuthBearer. |
| Nazwa użytkownika | (Opcjonalnie) Nazwa użytkownika uwierzytelniania SASL. Nieobsługiwane, gdy AuthenticationMode ma wartość Gssapi. Aby uzyskać więcej informacji, zobacz Połączenia . |
| Hasło | (Opcjonalnie) Hasło do uwierzytelniania SASL. Nieobsługiwane, gdy AuthenticationMode ma wartość Gssapi. Aby uzyskać więcej informacji, zobacz Połączenia . |
| Protokół | (Opcjonalnie) Protokół zabezpieczeń używany podczas komunikacji z brokerami. Obsługiwane wartości to NotSet (wartość domyślna), plaintext, ssl, sasl_plaintext, sasl_ssl. |
| SslCaLocation | (Opcjonalnie) Ścieżka do pliku certyfikatu urzędu certyfikacji na potrzeby weryfikowania certyfikatu brokera. |
| SslCertificateLocation | (Opcjonalnie) Ścieżka do certyfikatu klienta. |
| SslKeyLocation | (Opcjonalnie) Ścieżka do klucza prywatnego klienta (PEM) używanego do uwierzytelniania. |
| SslKeyPassword | (Opcjonalnie) Hasło do certyfikatu klienta. |
| SslCertificatePEM | (Opcjonalnie) Certyfikat klienta w formacie PEM jako ciąg. Aby uzyskać więcej informacji, zobacz Połączenia . |
| SslKeyPEM | (Opcjonalnie) Klucz prywatny klienta w formacie PEM jako ciąg. Aby uzyskać więcej informacji, zobacz Połączenia . |
| SslCaPEM | (Opcjonalnie) Certyfikat urzędu certyfikacji w formacie PEM jako ciąg. Aby uzyskać więcej informacji, zobacz Połączenia . |
| SslCertificateandKeyPEM | (Opcjonalnie) Certyfikat klienta i klucz w formacie PEM jako ciąg. Aby uzyskać więcej informacji, zobacz Połączenia . |
| SchemaRegistryUrl | (Opcjonalnie) Adres URL rejestru schematów Avro. Aby uzyskać więcej informacji, zobacz Połączenia . |
| SchemaRegistryUsername | (Opcjonalnie) Nazwa użytkownika rejestru schematów Avro. Aby uzyskać więcej informacji, zobacz Połączenia . |
| SchemaRegistryPassword | (Opcjonalnie) Hasło rejestru schematów Avro. Aby uzyskać więcej informacji, zobacz Połączenia . |
| OAuthBearerMethod | (Opcjonalnie) OAuth Bearer, metoda. Akceptowane wartości to oidc i default. |
| OAuthBearerClientId | (Opcjonalnie) Gdy OAuthBearerMethod jest ustawiona wartość oidc, określa identyfikator klienta elementu nośnego OAuth. Aby uzyskać więcej informacji, zobacz Połączenia . |
| OAuthBearerClientSecret | (Opcjonalnie) Gdy OAuthBearerMethod jest ustawiona wartość oidc, określa klucz tajny klienta elementu nośnego OAuth. Aby uzyskać więcej informacji, zobacz Połączenia . |
| OAuthBearerScope | (Opcjonalnie) Określa zakres żądania dostępu do brokera. |
| OAuthBearerTokenEndpointUrl | (Opcjonalnie) Identyfikator URI tokenu wystawcy OAuth/OIDC używany do pobierania tokenu podczas oidc użycia metody. Aby uzyskać więcej informacji, zobacz Połączenia . |
| OAuthBearerExtensions | (Opcjonalnie) Rozdzielona przecinkami lista par key=value, które mają być udostępniane jako dodatkowe informacje do brokera w przypadku oidc użycia metody. Na przykład: supportFeatureX=true,organizationId=sales-emea. |
Adnotacje
Adnotacja KafkaTrigger umożliwia utworzenie funkcji uruchamianej po odebraniu tematu. Obsługiwane opcje obejmują następujące elementy:
| Element | Opis |
|---|---|
| name | (Wymagane) Nazwa zmiennej reprezentującej komunikat kolejki lub tematu w kodzie funkcji. |
| brokerList | (Wymagane) Lista brokerów platformy Kafka monitorowanych przez wyzwalacz. Aby uzyskać więcej informacji, zobacz Połączenia . |
| topic | (Wymagane) Temat monitorowany przez wyzwalacz. |
| moc | (Opcjonalnie) Wskazuje kardynalność danych wejściowych wyzwalacza. Obsługiwane wartości to ONE (wartość domyślna) i MANY. Użyj ONE , gdy dane wejściowe są pojedynczym komunikatem, a MANY dane wejściowe są tablicą komunikatów. W przypadku używania MANYdataTypeelementu należy również ustawić wartość . |
| Datatype | Definiuje sposób obsługi wartości parametru przez funkcję Functions. Domyślnie wartość jest uzyskiwana jako ciąg, a usługa Functions próbuje wykonać deserializacji ciągu do rzeczywistego zwykłego obiektu Java (POJO). Gdy stringelement wejściowy jest traktowany jako tylko ciąg. Gdy binarykomunikat zostanie odebrany jako dane binarne, a usługa Functions próbuje wykonać deserializacji go do rzeczywistego bajtu typu parametru[]. |
| consumerGroup | (Opcjonalnie) Grupa odbiorców platformy Kafka używana przez wyzwalacz. |
| avroSchema | (Opcjonalnie) Schemat rekordu ogólnego w przypadku korzystania z protokołu Avro. |
| authenticationMode | (Opcjonalnie) Tryb uwierzytelniania podczas korzystania z uwierzytelniania prostego i warstwy zabezpieczeń (SASL). Obsługiwane wartości to NotSet (wartość domyślna), Gssapi, Plain, ScramSha256, ScramSha512. |
| nazwa użytkownika | (Opcjonalnie) Nazwa użytkownika uwierzytelniania SASL. Nieobsługiwane, gdy AuthenticationMode ma wartość Gssapi. Aby uzyskać więcej informacji, zobacz Połączenia . |
| hasło | (Opcjonalnie) Hasło do uwierzytelniania SASL. Nieobsługiwane, gdy AuthenticationMode ma wartość Gssapi. Aby uzyskać więcej informacji, zobacz Połączenia . |
| protokół | (Opcjonalnie) Protokół zabezpieczeń używany podczas komunikacji z brokerami. Obsługiwane wartości to NotSet (wartość domyślna), plaintext, ssl, sasl_plaintext, sasl_ssl. |
| sslCaLocation | (Opcjonalnie) Ścieżka do pliku certyfikatu urzędu certyfikacji na potrzeby weryfikowania certyfikatu brokera. |
| sslCertificateLocation | (Opcjonalnie) Ścieżka do certyfikatu klienta. |
| sslKeyLocation | (Opcjonalnie) Ścieżka do klucza prywatnego klienta (PEM) używanego do uwierzytelniania. |
| sslKeyPassword | (Opcjonalnie) Hasło do certyfikatu klienta. |
| lagThreshold | (Opcjonalnie) Próg opóźnienia dla wyzwalacza. |
| schemaRegistryUrl | (Opcjonalnie) Adres URL rejestru schematów Avro. Aby uzyskać więcej informacji, zobacz Połączenia . |
| schemaRegistryUsername | (Opcjonalnie) Nazwa użytkownika rejestru schematów Avro. Aby uzyskać więcej informacji, zobacz Połączenia . |
| schemaRegistryPassword | (Opcjonalnie) Hasło rejestru schematów Avro. Aby uzyskać więcej informacji, zobacz Połączenia . |
Konfigurowanie
W poniższej tabeli opisano właściwości konfiguracji powiązania ustawione w pliku function.json .
| właściwość function.json | Opis |
|---|---|
| type | (Wymagane) Ustaw wartość kafkaTrigger. |
| direction | (Wymagane) Ustaw wartość in. |
| name | (Wymagane) Nazwa zmiennej reprezentującej dane obsługiwane przez brokera w kodzie funkcji. |
| brokerList | (Wymagane) Lista brokerów platformy Kafka monitorowanych przez wyzwalacz. Aby uzyskać więcej informacji, zobacz Połączenia . |
| topic | (Wymagane) Temat monitorowany przez wyzwalacz. |
| moc | (Opcjonalnie) Wskazuje kardynalność danych wejściowych wyzwalacza. Obsługiwane wartości to ONE (wartość domyślna) i MANY. Użyj ONE , gdy dane wejściowe są pojedynczym komunikatem, a MANY dane wejściowe są tablicą komunikatów. W przypadku używania MANYdataTypeelementu należy również ustawić wartość . |
| Datatype | Definiuje sposób obsługi wartości parametru przez funkcję Functions. Domyślnie wartość jest uzyskiwana jako ciąg, a usługa Functions próbuje wykonać deserializacji ciągu do rzeczywistego zwykłego obiektu Java (POJO). Gdy stringelement wejściowy jest traktowany jako tylko ciąg. Gdy binarykomunikat zostanie odebrany jako dane binarne, a usługa Functions próbuje wykonać deserializacji go do rzeczywistego typu parametru tablicy bajtowej. |
| consumerGroup | (Opcjonalnie) Grupa odbiorców platformy Kafka używana przez wyzwalacz. |
| avroSchema | (Opcjonalnie) Schemat rekordu ogólnego w przypadku korzystania z protokołu Avro. |
| keyAvroSchema | (Opcjonalnie) Schemat ogólnego rekordu klucza komunikatu podczas korzystania z protokołu Avro. |
| keyDataType | (Opcjonalnie) Typ danych, aby odebrać klucz komunikatu z tematu platformy Kafka. Jeśli keyAvroSchema jest ustawiona, ta wartość jest rekordem ogólnym. Akceptowane wartości to Int, , StringLongi Binary. |
| authenticationMode | (Opcjonalnie) Tryb uwierzytelniania podczas korzystania z uwierzytelniania prostego i warstwy zabezpieczeń (SASL). Obsługiwane wartości to NotSet (wartość domyślna), Gssapi, Plain, ScramSha256, ScramSha512. |
| nazwa użytkownika | (Opcjonalnie) Nazwa użytkownika uwierzytelniania SASL. Nieobsługiwane, gdy AuthenticationMode ma wartość Gssapi. Aby uzyskać więcej informacji, zobacz Połączenia . |
| hasło | (Opcjonalnie) Hasło do uwierzytelniania SASL. Nieobsługiwane, gdy AuthenticationMode ma wartość Gssapi. Aby uzyskać więcej informacji, zobacz Połączenia . |
| protokół | (Opcjonalnie) Protokół zabezpieczeń używany podczas komunikacji z brokerami. Obsługiwane wartości to NotSet (wartość domyślna), plaintext, ssl, sasl_plaintext, sasl_ssl. |
| sslCaLocation | (Opcjonalnie) Ścieżka do pliku certyfikatu urzędu certyfikacji na potrzeby weryfikowania certyfikatu brokera. |
| sslCertificateLocation | (Opcjonalnie) Ścieżka do certyfikatu klienta. |
| sslKeyLocation | (Opcjonalnie) Ścieżka do klucza prywatnego klienta (PEM) używanego do uwierzytelniania. |
| sslKeyPassword | (Opcjonalnie) Hasło do certyfikatu klienta. |
| sslCertificatePEM | (Opcjonalnie) Certyfikat klienta w formacie PEM jako ciąg. Aby uzyskać więcej informacji, zobacz Połączenia . |
| sslKeyPEM | (Opcjonalnie) Klucz prywatny klienta w formacie PEM jako ciąg. Aby uzyskać więcej informacji, zobacz Połączenia . |
| sslCaPEM | (Opcjonalnie) Certyfikat urzędu certyfikacji w formacie PEM jako ciąg. Aby uzyskać więcej informacji, zobacz Połączenia . |
| sslCertificateandKeyPEM | (Opcjonalnie) Certyfikat klienta i klucz w formacie PEM jako ciąg. Aby uzyskać więcej informacji, zobacz Połączenia . |
| lagThreshold | (Opcjonalnie) Próg opóźnienia dla wyzwalacza. |
| schemaRegistryUrl | (Opcjonalnie) Adres URL rejestru schematów Avro. Aby uzyskać więcej informacji, zobacz Połączenia . |
| schemaRegistryUsername | (Opcjonalnie) Nazwa użytkownika rejestru schematów Avro. Aby uzyskać więcej informacji, zobacz Połączenia . |
| schemaRegistryPassword | (Opcjonalnie) Hasło rejestru schematów Avro. Aby uzyskać więcej informacji, zobacz Połączenia . |
| oAuthBearerMethod | (Opcjonalnie) OAuth Bearer, metoda. Akceptowane wartości to oidc i default. |
| oAuthBearerClientId | (Opcjonalnie) Gdy oAuthBearerMethod jest ustawiona wartość oidc, określa identyfikator klienta elementu nośnego OAuth. Aby uzyskać więcej informacji, zobacz Połączenia . |
| oAuthBearerClientSecret | (Opcjonalnie) Gdy oAuthBearerMethod jest ustawiona wartość oidc, określa klucz tajny klienta elementu nośnego OAuth. Aby uzyskać więcej informacji, zobacz Połączenia . |
| oAuthBearerScope | (Opcjonalnie) Określa zakres żądania dostępu do brokera. |
| oAuthBearerTokenEndpointUrl | (Opcjonalnie) Identyfikator URI tokenu wystawcy OAuth/OIDC używany do pobierania tokenu podczas oidc użycia metody. Aby uzyskać więcej informacji, zobacz Połączenia . |
Konfigurowanie
W poniższej tabeli opisano właściwości konfiguracji powiązania ustawione w pliku function.json . Język Python używa snake_case konwencji nazewnictwa dla właściwości konfiguracji.
| właściwość function.json | Opis |
|---|---|
| type | (Wymagane) Ustaw wartość kafkaTrigger. |
| direction | (Wymagane) Ustaw wartość in. |
| name | (Wymagane) Nazwa zmiennej reprezentującej dane obsługiwane przez brokera w kodzie funkcji. |
| broker_list | (Wymagane) Lista brokerów platformy Kafka monitorowanych przez wyzwalacz. Aby uzyskać więcej informacji, zobacz Połączenia . |
| topic | (Wymagane) Temat monitorowany przez wyzwalacz. |
| moc | (Opcjonalnie) Wskazuje kardynalność danych wejściowych wyzwalacza. Obsługiwane wartości to ONE (wartość domyślna) i MANY. Użyj ONE , gdy dane wejściowe są pojedynczym komunikatem, a MANY dane wejściowe są tablicą komunikatów. W przypadku używania MANYdata_typeelementu należy również ustawić wartość . |
| data_type | Definiuje sposób obsługi wartości parametru przez funkcję Functions. Domyślnie wartość jest uzyskiwana jako ciąg, a usługa Functions próbuje wykonać deserializacji ciągu do rzeczywistego zwykłego obiektu Java (POJO). Gdy stringelement wejściowy jest traktowany jako tylko ciąg. Gdy binarykomunikat zostanie odebrany jako dane binarne, a usługa Functions próbuje wykonać deserializacji go do rzeczywistego bajtu typu parametru[]. |
| consumerGroup | (Opcjonalnie) Grupa odbiorców platformy Kafka używana przez wyzwalacz. |
| avroSchema | (Opcjonalnie) Schemat rekordu ogólnego w przypadku korzystania z protokołu Avro. |
| authentication_mode | (Opcjonalnie) Tryb uwierzytelniania podczas korzystania z uwierzytelniania prostego i warstwy zabezpieczeń (SASL). Obsługiwane wartości to NOTSET (wartość domyślna), Gssapi, Plain, ScramSha256, ScramSha512. |
| nazwa użytkownika | (Opcjonalnie) Nazwa użytkownika uwierzytelniania SASL. Nieobsługiwane, gdy authentication_mode ma wartość Gssapi. Aby uzyskać więcej informacji, zobacz Połączenia . |
| hasło | (Opcjonalnie) Hasło do uwierzytelniania SASL. Nieobsługiwane, gdy authentication_mode ma wartość Gssapi. Aby uzyskać więcej informacji, zobacz Połączenia . |
| protokół | (Opcjonalnie) Protokół zabezpieczeń używany podczas komunikacji z brokerami. Obsługiwane wartości to NOTSET (wartość domyślna), plaintext, ssl, sasl_plaintext, sasl_ssl. |
| sslCaLocation | (Opcjonalnie) Ścieżka do pliku certyfikatu urzędu certyfikacji na potrzeby weryfikowania certyfikatu brokera. |
| sslCertificateLocation | (Opcjonalnie) Ścieżka do certyfikatu klienta. |
| sslKeyLocation | (Opcjonalnie) Ścieżka do klucza prywatnego klienta (PEM) używanego do uwierzytelniania. |
| sslKeyPassword | (Opcjonalnie) Hasło do certyfikatu klienta. |
| lag_threshold | (Opcjonalnie) Próg opóźnienia dla wyzwalacza. |
| schema_registry_url | (Opcjonalnie) Adres URL rejestru schematów Avro. Aby uzyskać więcej informacji, zobacz Połączenia . |
| schema_registry_username | (Opcjonalnie) Nazwa użytkownika rejestru schematów Avro. Aby uzyskać więcej informacji, zobacz Połączenia . |
| schema_registry_password | (Opcjonalnie) Hasło rejestru schematów Avro. Aby uzyskać więcej informacji, zobacz Połączenia . |
| o_auth_bearer_method | (Opcjonalnie) OAuth Bearer, metoda. Akceptowane wartości to oidc i default. |
| o_auth_bearer_client_id | (Opcjonalnie) Gdy o_auth_bearer_method jest ustawiona wartość oidc, określa identyfikator klienta elementu nośnego OAuth. Aby uzyskać więcej informacji, zobacz Połączenia . |
| o_auth_bearer_client_secret | (Opcjonalnie) Gdy o_auth_bearer_method jest ustawiona wartość oidc, określa klucz tajny klienta elementu nośnego OAuth. Aby uzyskać więcej informacji, zobacz Połączenia . |
| o_auth_bearer_scope | (Opcjonalnie) Określa zakres żądania dostępu do brokera. |
| o_auth_bearer_token_endpoint_url | (Opcjonalnie) Identyfikator URI tokenu wystawcy OAuth/OIDC używany do pobierania tokenu podczas oidc użycia metody. Aby uzyskać więcej informacji, zobacz Połączenia . |
Uwaga
Właściwości związane z certyfikatem PEM i właściwości związane z kluczami Avro nie są jeszcze dostępne w bibliotece języka Python.
Użycie
Wyzwalacz platformy Kafka obsługuje obecnie zdarzenia platformy Kafka jako ciągi i tablice ciągów, które są ładunkami JSON.
Wyzwalacz platformy Kafka przekazuje komunikaty platformy Kafka do funkcji jako ciągi. Wyzwalacz obsługuje również tablice ciągów, które są ładunkami JSON.
W planie Premium należy włączyć monitorowanie skalowania w czasie wykonywania dla danych wyjściowych platformy Kafka w celu skalowania w poziomie do wielu wystąpień. Aby dowiedzieć się więcej, zobacz Włączanie skalowania środowiska uruchomieniowego.
Do pracy z wyzwalaczami platformy Kafka nie można użyć funkcji Testowanie/uruchamianie strony Kod i testowanie w witrynie Azure Portal. Zamiast tego należy wysyłać zdarzenia testowe bezpośrednio do tematu monitorowanego przez wyzwalacz.
Aby uzyskać pełny zestaw obsługiwanych ustawień host.json wyzwalacza platformy Kafka, zobacz host.json ustawienia.
Połączenia
Przechowuj wszystkie informacje o połączeniu wymagane przez wyzwalacze i powiązania w ustawieniach aplikacji, a nie w definicjach powiązań w kodzie. Te wskazówki dotyczą poświadczeń, których nigdy nie należy przechowywać w kodzie.
Ważne
Ustawienia poświadczeń muszą odwoływać się do ustawienia aplikacji. Nie należy zapisywać poświadczeń w kodzie ani plikach konfiguracji. W przypadku uruchamiania lokalnego użyj pliku local.settings.json dla poświadczeń i nie publikuj pliku local.settings.json.
Podczas nawiązywania połączenia z zarządzanym klastrem Kafka udostępnianym przez platformę Confluent na platformie Azure można użyć jednej z następujących metod uwierzytelniania.
Uwaga
W przypadku korzystania z planu Flex Consumption właściwości uwierzytelniania certyfikatu opartego na lokalizacji (SslCaLocation, SslCertificateLocation, SslKeyLocation) nie są obsługiwane. Zamiast tego użyj właściwości certyfikatu opartego na PEM (SslCaPEM, SslCertificatePEM, SslKeyPEM, SslCertificateandKeyPEM) lub przechowuj certyfikaty w usłudze Azure Key Vault.
Rejestr schematów
Aby korzystać z rejestru schematów udostępnianego przez platformę Confluent w rozszerzeniu platformy Kafka, ustaw następujące poświadczenia:
| Ustawienie | Zalecana wartość | Opis |
|---|---|---|
| SchemaRegistryUrl | SchemaRegistryUrl |
Adres URL usługi rejestru schematów używanej do zarządzania schematami. Zazwyczaj format https://psrc-xyz.us-east-2.aws.confluent.cloud |
| SchemaRegistryUsername | CONFLUENT_API_KEY |
Nazwa użytkownika podstawowego uwierzytelniania w rejestrze schematów (jeśli jest to wymagane). |
| SchemaRegistryPassword | CONFLUENT_API_SECRET |
Hasło do podstawowego uwierzytelniania w rejestrze schematów (jeśli jest to wymagane). |
Uwierzytelnianie nazwy użytkownika/hasła
Korzystając z tej formy uwierzytelniania, upewnij się, że Protocol ustawiono ScramSha256ScramSha512PlainSaslPlaintext wartość lub AuthenticationModeSaslSsl, a jeśli używany certyfikat urzędu certyfikacji różni się od domyślnego certyfikatu ISRG Root X1, pamiętaj, aby zaktualizować SslCaLocation lub .SslCaPEM
| Ustawienie | Zalecana wartość | Opis |
|---|---|---|
| Lista brokerów | BootstrapServer |
Ustawienie aplikacji o nazwie BootstrapServer zawiera wartość serwera bootstrap znalezionego na stronie ustawień chmury Confluent. Wartość przypomina xyz-xyzxzy.westeurope.azure.confluent.cloud:9092. |
| Nazwa użytkownika | ConfluentCloudUsername |
Ustawienie aplikacji o nazwie ConfluentCloudUsername zawiera klucz dostępu interfejsu API z witryny internetowej Confluent Cloud. |
| Hasło | ConfluentCloudPassword |
Ustawienie aplikacji o nazwie ConfluentCloudPassword zawiera wpis tajny interfejsu API uzyskany z witryny internetowej platformy Confluent Cloud. |
| SslCaPEM | SSLCaPemCertificate |
Ustawienie aplikacji o nazwie SSLCaPemCertificate zawierającej certyfikat urzędu certyfikacji jako ciąg w formacie PEM. Wartość powinna być zgodna ze standardowym formatem, na przykład: -----BEGIN CERTIFICATE-----\nMII....JQ==\n-----END CERTIFICATE-----. |
Uwierzytelnianie SSL
Upewnij się, że Protocol jest ustawione na SSL.
| Ustawienie | Zalecana wartość | Opis |
|---|---|---|
| Lista brokerów | BootstrapServer |
Ustawienie aplikacji o nazwie BootstrapServer zawiera wartość serwera bootstrap znalezionego na stronie ustawień chmury Confluent. Wartość przypomina xyz-xyzxzy.westeurope.azure.confluent.cloud:9092. |
| SslCaPEM | SslCaCertificatePem |
Ustawienie aplikacji o nazwie SslCaCertificatePem zawierające wartość PEM certyfikatu urzędu certyfikacji jako ciąg. Wartość powinna być zgodna ze standardowym formatem: -----BEGIN CERTIFICATE-----\nMII...JQ==\n-----END CERTIFICATE----- |
| SslCertificatePEM | SslClientCertificatePem |
Ustawienie aplikacji o nazwie SslClientCertificatePem zawierające wartość PEM certyfikatu klienta jako ciąg. Wartość powinna być zgodna ze standardowym formatem: -----BEGIN CERTIFICATE-----\nMII...JQ==\n-----END CERTIFICATE----- |
| SslKeyPEM | SslClientKeyPem |
Ustawienie aplikacji o nazwie SslClientKeyPem zawierające wartość PEM klucza prywatnego klienta jako ciąg. Wartość powinna być zgodna ze standardowym formatem: -----BEGIN PRIVATE KEY-----\nMII...JQ==\n-----END PRIVATE KEY----- |
| SslCertificateandKeyPEM | SslClientCertificateAndKeyPem |
Ustawienie aplikacji o nazwie SslClientCertificateAndKeyPem zawierające wartość PEM certyfikatu klienta i klucza prywatnego klienta łączone jako ciąg. Wartość powinna być zgodna ze standardowym formatem: -----BEGIN CERTIFICATE-----\nMII....JQ==\n-----END CERTIFICATE-----\n-----BEGIN PRIVATE KEY-----\nMIIE....BM=\n-----END PRIVATE KEY----- |
| SslKeyPassword | SslClientKeyPassword |
Ustawienie aplikacji o nazwie SslClientKeyPassword zawierające hasło klucza prywatnego (jeśli istnieje). |
Uwierzytelnianie OAuth
W przypadku korzystania z uwierzytelniania OAuth skonfiguruj właściwości związane z protokołem OAuth w definicjach powiązań.
Wartości ciągu używane dla tych ustawień muszą być obecne jako ustawienia aplikacji na platformie Azure lub w Values kolekcji w pliku local.settings.json podczas programowania lokalnego.
Należy również ustawić Protocol wartości i AuthenticationMode w definicjach powiązań.