Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
İşlev kodunuzu Kafka konu başlıklarındaki iletilere yanıt olarak çalıştırmak için Azure İşlevleri'nde Apache Kafka tetikleyicisini kullanın. Ayrıca, işlevinizden bir konuya yazmak için Kafka çıkış bağlaması da kullanabilirsiniz. Kurulum ve yapılandırma ayrıntıları hakkında bilgi için bkz. Azure İşlevleri genel bakış için Apache Kafka bağlamaları.
Önemli
Kafka bağlamaları Esnek Tüketim planı, Elastik Premium Plan ve Ayrılmış (App Service) planındaki İşlevler için kullanılabilir. Bunlar yalnızca İşlevler çalışma zamanının 4.x sürümünde desteklenir.
Örnek
Go desteği şu anda bu bağlama için mevcut değil.
Tetikleyicinin kullanımı, işlev uygulamanızda kullanılan C# modalitesine bağlıdır ve bu modlar aşağıdaki modlardan biri olabilir:
Çalışma zamanından ayrı bir işlemde çalışan yalıtılmış bir çalışan işlem sınıfı kitaplığını kullanan derlenmiş bir C# işlevi.
Kullandığınız öznitelikler belirli olay sağlayıcısına bağlıdır.
Aşağıdaki örnekte, Kafka iletisini Kafka olayı olarak okuyan ve günlüğe kaydeden bir C# işlevi gösterilmektedir:
[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"]}");
}
Olayları toplu olarak almak için, aşağıdaki örnekte gösterildiği gibi giriş olarak bir dize dizisi kullanın:
[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"]}");
}
Aşağıdaki işlev, Kafka Olayı için iletiyi ve üst bilgileri günlüğe kaydeder:
[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"])}");
}
}
Çalışan .NET örneklerinin tamamı için kafka uzantısı deposuna bakın.
Tetikleyicinin kullanımı, Node.js programlama modeli sürümünüze bağlıdır.
Node.js v4 modelinde tetikleyicinizi doğrudan işlev kodunuzda tanımlarsınız. Daha fazla bilgi için Azure İşlevleri Node.js geliştirici kılavuzuna bakın.
Bu örneklerde, olay sağlayıcıları Confluent veya Azure Event Hubs'dır. Bu örnekler, Kafka iletisini okuyan bir işlev için Kafka tetikleyicisi tanımlamayı gösterir.
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,
});
Toplu iş içindeki olayları almak için değerini cardinalityşu örneklerde gösterildiği gibi olarak ayarlayınmany:
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,
});
Tetikleyiciye geçirilen olay için genel bir Avro şeması tanımlayabilirsiniz. Bu örnek, genel bir Avro şemasına sahip belirli sağlayıcının tetikleyicisini tanımlar:
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,
});
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,
});
Toplu iş içindeki olayları almak için değerini cardinalityşu örneklerde gösterildiği gibi olarak ayarlayınmany:
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,
});
Tetikleyiciye geçirilen olay için genel bir Avro şeması tanımlayabilirsiniz. Bu örnek, genel bir Avro şemasına sahip belirli sağlayıcının tetikleyicisini tanımlar:
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,
});
Çalışan TypeScript örneklerinin tamamı için kafka uzantısı deposuna bakın.
Dosyanın belirli özellikleri function.json olay sağlayıcınıza bağlıdır. Bu örneklerde, olay sağlayıcıları Confluent veya Azure Event Hubs'dır. Aşağıdaki örneklerde, Kafka iletisini okuyan ve günlüğe kaydeden bir işlev için Kafka tetikleyicisi gösterilmektedir.
Aşağıdaki function.json dosya, belirli bir sağlayıcı için tetikleyiciyi tanımlar:
{
"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"
}
]
}
İşlev tetiklendiğinde aşağıdaki kod çalışır:
using namespace System.Net
param($kafkaEvent, $TriggerMetadata)
Write-Output "Powershell Kafka trigger function called for message $kafkaEvent.Value"
Olayları toplu olarak almak için, aşağıdaki örneklerde gösterildiği gibi değeri cardinality function.json dosyasında olarak ayarlayınmany:
{
"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"
}
]
}
Aşağıdaki kod, olay dizisini ayrıştırıp olay verilerini günlüğe kaydeder:
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"
}
Aşağıdaki kod, üst bilgi verilerini günlüğe kaydeder:
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"
}
}
Tetikleyiciye geçirilen olay için genel bir Avro şeması tanımlayabilirsiniz. Aşağıdaki function.json, genel bir Avro şemasına sahip belirli sağlayıcının tetikleyicisini tanımlar:
{
"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%"
} ]
}
İşlev tetiklendiğinde aşağıdaki kod çalışır:
using namespace System.Net
param($kafkaEvent, $TriggerMetadata)
Write-Output "Powershell Kafka trigger function called for message $kafkaEvent.Value"
Çalışan PowerShell örneklerinin tamamı için kafka uzantısı deposuna bakın.
Tetikleyicinin kullanımı, Python programlama modeli sürümünüze bağlıdır.
Python v2 modelinde, dekoratörleri kullanarak tetikleyicinizi doğrudan işlev kodunuzda tanımlarsınız. Daha fazla bilgi için bkz. Azure İşlevleri Python geliştirici kılavuzu.
Bu örnekler, Kafka iletisini okuyan bir işlev için Kafka tetikleyicisi tanımlamayı gösterir.
@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)
Bu örnek, değerini cardinalityolarak ayarlayarak many toplu işteki olayları alır.
@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())
Tetikleyiciye geçirilen olay için genel bir Avro şeması tanımlayabilirsiniz.
@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)
Tetikleyicinizi yapılandırmak için kullandığınız ek açıklamalar belirli olay sağlayıcısına bağlıdır.
Aşağıdaki örnekte, Kafka olayının içeriğini okuyan ve günlüğe kaydeden bir Java işlevi gösterilmektedir:
@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);
}
Bir toplu iş içindeki olayları almak için, aşağıdaki örnekte gösterildiği gibi bir giriş dizesini dizi olarak kullanın:
@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);
}
}
Aşağıdaki işlev, Kafka Olayı için iletiyi ve üst bilgileri günlüğe kaydeder:
@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);
}
}
}
Tetikleyiciye geçirilen olay için genel bir Avro şeması tanımlayabilirsiniz. Aşağıdaki işlev, genel avro şemasına sahip belirli sağlayıcı için bir tetikleyici tanımlar:
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());
}
Confluent için çalışan java örneklerinin tamamı için Kafka uzantısı deposuna bakın.
Özellikler
hem işlem içi hem de yalıtılmış çalışan işlemi C# kitaplıkları, işlev tetikleyicisini tanımlamak için öğesini KafkaTriggerAttribute kullanır.
Aşağıdaki tabloda, bu tetikleyici özniteliğini kullanarak ayarlayabileceğiniz özellikler açıklanmaktadır:
| Parametre | Açıklama |
|---|---|
| BrokerList | (Gerekli) Tetikleyici tarafından izlenen Kafka aracılarının listesi. Daha fazla bilgi için bkz . Bağlantılar . |
| Konu | (Gerekli) Tetikleyici tarafından izlenen konu. |
| ConsumerGroup | (İsteğe bağlı) Tetikleyici tarafından kullanılan Kafka tüketici grubu. |
| AvroSchema | (İsteğe bağlı) Avro protokolü kullanılırken ileti değerinin genel kaydının şeması. |
| KeyAvroSchema | (İsteğe bağlı) Avro protokolü kullanılırken ileti anahtarının genel kaydının şeması. |
| KeyDataType | (İsteğe bağlı) İleti anahtarını Kafka Konusu'ndan almak için veri türü. Ayarlanırsa KeyAvroSchema , bu değer genel kayıttır. Kabul edilen değerler , Int, Longve StringdeğerleridirBinary. |
| AuthenticationMode | (İsteğe bağlı) Basit Kimlik Doğrulaması ve Güvenlik Katmanı (SASL) kimlik doğrulaması kullanılırken kullanılan kimlik doğrulama modu. Desteklenen değerler şunlardır NotSet : (varsayılan), Gssapi, Plain, ScramSha256, ScramSha512ve OAuthBearer. |
| Kullanıcı adı | (İsteğe bağlı) SASL kimlik doğrulaması için kullanıcı adı. olduğunda AuthenticationModeGssapidesteklenmez. Daha fazla bilgi için bkz . Bağlantılar . |
| Parola | (İsteğe bağlı) SASL kimlik doğrulamasının parolası. olduğunda AuthenticationModeGssapidesteklenmez. Daha fazla bilgi için bkz . Bağlantılar . |
| Protokol | (İsteğe bağlı) Aracılarla iletişim kurarken kullanılan güvenlik protokolü. Desteklenen değerler şunlardır NotSet : (varsayılan), plaintext, ssl, sasl_plaintext, sasl_ssl. |
| SslCaLocation | (İsteğe bağlı) Aracının sertifikasını doğrulamak için CA sertifika dosyasının yolu. |
| SslCertificateLocation | (İsteğe bağlı) İstemci sertifikasının yolu. |
| SslKeyLocation | (İsteğe bağlı) Kimlik doğrulaması için kullanılan istemcinin özel anahtarının (PEM) yolu. |
| SslKeyPassword | (İsteğe bağlı) İstemci sertifikasının parolası. |
| SslCertificatePEM | (İsteğe bağlı) PEM biçimindeki istemci sertifikası dize olarak. Daha fazla bilgi için bkz . Bağlantılar . |
| SslKeyPEM | (İsteğe bağlı) PeM biçimindeki istemci özel anahtarı dize olarak. Daha fazla bilgi için bkz . Bağlantılar . |
| SslCaPEM | (İsteğe bağlı) DIZE olarak PEM biçiminde CA sertifikası. Daha fazla bilgi için bkz . Bağlantılar . |
| SslCertificateandKeyPEM | (İsteğe bağlı) PEM biçiminde dize olarak istemci sertifikası ve anahtarı. Daha fazla bilgi için bkz . Bağlantılar . |
| SchemaRegistryUrl | (İsteğe bağlı) Avro Şema Kayıt Defteri URL'si. Daha fazla bilgi için bkz . Bağlantılar . |
| SchemaRegistryUsername | (İsteğe bağlı) Avro Şema Kayıt Defteri için kullanıcı adı. Daha fazla bilgi için bkz . Bağlantılar . |
| SchemaRegistryPassword | (İsteğe bağlı) Avro Şema Kayıt Defteri parolası. Daha fazla bilgi için bkz . Bağlantılar . |
| OAuthBearerMethod | (İsteğe bağlı) OAuth Taşıyıcı yöntemi. Kabul edilen değerler oidc ve default'dir. |
| OAuthBearerClientId | (İsteğe bağlı) OAuthBearerMethod olarak ayarlandığında oidc, OAuth taşıyıcı istemci kimliğini belirtir. Daha fazla bilgi için bkz . Bağlantılar . |
| OAuthBearerClientSecret | (İsteğe bağlı) OAuthBearerMethod olarak ayarlandığında oidc, OAuth taşıyıcı istemci gizli dizisini belirtir. Daha fazla bilgi için bkz . Bağlantılar . |
| OAuthBearerScope | (İsteğe bağlı) Aracıya erişim isteğinin kapsamını belirtir. |
| OAuthBearerTokenEndpointUrl | (İsteğe bağlı) Yöntem kullanıldığında belirteci oidc almak için kullanılan OAuth/OIDC veren belirteç uç noktası HTTP(S) URI'sini kullanır. Daha fazla bilgi için bkz . Bağlantılar . |
| httpsCaLocation | (İsteğe bağlı) OAuth/OIDC token uç nokta sertifikasını doğrulamak için CA sertifikalarına dosya veya dizin yolu. Özel değer probe , işletim sisteminin varsayılan sertifika yollarını kullanır. Yalnızca izole çalışan modeliyle desteklenir. |
| httpsCaPem | (İsteğe bağlı) OAuth/OIDC token endpoint sertifikasının PEM formatında doğrulanması için CA sertifikası. Yalnızca izole çalışan modeliyle desteklenir. |
| OAuthBearerExtensions | (İsteğe bağlı) Yöntem kullanıldığında aracıya oidc ek bilgi olarak sağlanacak anahtar=değer çiftlerinin virgülle ayrılmış listesi. Örneğin: supportFeatureX=true,organizationId=sales-emea. |
Önemli
Ve HttpsCaLocationHttpsCaPem seçenekleri şu anda dinamik ölçekli planlarda desteklenmiyor. Şu anda, bu özellikleri yalnızca fonksiyon uygulamanız Dedicated (App Service) planında barındırıldığında kullanabiliyorsunuz.
İzole çalışan modeli için, PEM değerini özniteliğe koymak yerine bir uygulama ayarı ifadesi kullanın:HttpsCaPem
[KafkaTrigger(
"BrokerList",
"topic",
HttpsCaPem = "%KafkaHttpsCaPem%"
)]
Azure'da, uygulama ayarını KafkaHttpsCaPem PEM değerini içeren sır için bir Key Vault referansı olarak ayarlayın. Bu KafkaHttpsCaPem ayar, kasanızın adı nerede olduğu şu örnek <keyVaultName> gibi görünebilir:
@Microsoft.KeyVault(SecretUri=https://<keyVaultName>.vault.azure.net/secrets/httpscapem)
Ek Açıklamalar
Ek KafkaTrigger açıklama, konu aldığında çalışan bir işlev oluşturmanıza olanak tanır. Desteklenen seçenekler aşağıdaki öğeleri içerir:
| Öğe | Açıklama |
|---|---|
| ad | (Gerekli) İşlev kodundaki kuyruk veya konu iletisini temsil eden değişkenin adı. |
| brokerList | (Gerekli) Tetikleyici tarafından izlenen Kafka aracılarının listesi. Daha fazla bilgi için bkz . Bağlantılar . |
| topic | (Gerekli) Tetikleyici tarafından izlenen konu. |
| Önem düzeyi | (İsteğe bağlı) Tetikleyici girişinin kardinalitesini gösterir. Desteklenen değerler (varsayılan) ve ONE'tir MANY . Giriş tek bir ileti olduğunda ve ONE giriş bir ileti dizisi olduğunda kullanınMANY. kullanırken MANYbir de ayarlamanız dataTypegerekir. |
| Datatype | İşlevler'in parametre değerini nasıl işlediğini tanımlar. Varsayılan olarak, değer bir dize olarak elde edilir ve İşlevler dizeyi gerçek düz eski Java nesnesine (POJO) seri durumdan çıkarmaya çalışır. olduğunda string, giriş yalnızca bir dize olarak değerlendirilir. olduğunda binary, ileti ikili veri olarak alınır ve İşlevler bunu gerçek parametre türü bayt[] olarak seri durumdan çıkarmaya çalışır. |
| consumerGroup | (İsteğe bağlı) Tetikleyici tarafından kullanılan Kafka tüketici grubu. |
| avroSchema | (İsteğe bağlı) Avro protokolü kullanılırken genel bir kaydın şeması. |
| authenticationMode | (İsteğe bağlı) Basit Kimlik Doğrulaması ve Güvenlik Katmanı (SASL) kimlik doğrulaması kullanılırken kullanılan kimlik doğrulama modu. Desteklenen değerler şunlardır NotSet : (varsayılan), Gssapi, Plain, ScramSha256, ScramSha512. |
| kullanıcı adı | (İsteğe bağlı) SASL kimlik doğrulaması için kullanıcı adı. olduğunda AuthenticationModeGssapidesteklenmez. Daha fazla bilgi için bkz . Bağlantılar . |
| parola | (İsteğe bağlı) SASL kimlik doğrulamasının parolası. olduğunda AuthenticationModeGssapidesteklenmez. Daha fazla bilgi için bkz . Bağlantılar . |
| protokol | (İsteğe bağlı) Aracılarla iletişim kurarken kullanılan güvenlik protokolü. Desteklenen değerler şunlardır NotSet : (varsayılan), plaintext, ssl, sasl_plaintext, sasl_ssl. |
| sslCaLocation | (İsteğe bağlı) Aracının sertifikasını doğrulamak için CA sertifika dosyasının yolu. |
| sslCertificateLocation | (İsteğe bağlı) İstemci sertifikasının yolu. |
| sslKeyLocation | (İsteğe bağlı) Kimlik doğrulaması için kullanılan istemcinin özel anahtarının (PEM) yolu. |
| sslKeyPassword | (İsteğe bağlı) İstemci sertifikasının parolası. |
| lagThreshold | (İsteğe bağlı) Tetikleyici için gecikme eşiği. |
| schemaRegistryUrl | (İsteğe bağlı) Avro Şema Kayıt Defteri URL'si. Daha fazla bilgi için bkz . Bağlantılar . |
| schemaRegistryUsername | (İsteğe bağlı) Avro Şema Kayıt Defteri için kullanıcı adı. Daha fazla bilgi için bkz . Bağlantılar . |
| schemaRegistryPassword | (İsteğe bağlı) Avro Şema Kayıt Defteri parolası. Daha fazla bilgi için bkz . Bağlantılar . |
Yapılandırma
Aşağıdaki tabloda, function.json dosyasında ayarladığınız bağlama yapılandırma özellikleri açıklanmaktadır.
| function.json özelliği | Açıklama |
|---|---|
| type | (Gerekli) olarak kafkaTriggerayarlayın. |
| direction | (Gerekli) olarak inayarlayın. |
| ad | (Gerekli) İşlev kodunda aracılı verileri temsil eden değişkenin adı. |
| brokerList | (Gerekli) Tetikleyici tarafından izlenen Kafka aracılarının listesi. Daha fazla bilgi için bkz . Bağlantılar . |
| topic | (Gerekli) Tetikleyici tarafından izlenen konu. |
| Önem düzeyi | (İsteğe bağlı) Tetikleyici girişinin kardinalitesini gösterir. Desteklenen değerler (varsayılan) ve ONE'tir MANY . Giriş tek bir ileti olduğunda ve ONE giriş bir ileti dizisi olduğunda kullanınMANY. kullanırken MANYbir de ayarlamanız dataTypegerekir. |
| Datatype | İşlevler'in parametre değerini nasıl işlediğini tanımlar. Varsayılan olarak, değer bir dize olarak elde edilir ve İşlevler dizeyi gerçek düz eski Java nesnesine (POJO) seri durumdan çıkarmaya çalışır. olduğunda string, giriş yalnızca bir dize olarak değerlendirilir. olduğunda binary, ileti ikili veri olarak alınır ve İşlevler bunu gerçek bir bayt dizisi parametre türüne seri durumdan çıkarmaya çalışır. |
| consumerGroup | (İsteğe bağlı) Tetikleyici tarafından kullanılan Kafka tüketici grubu. |
| avroSchema | (İsteğe bağlı) Avro protokolü kullanılırken genel bir kaydın şeması. |
| keyAvroSchema | (İsteğe bağlı) Avro protokolü kullanılırken ileti anahtarının genel kaydının şeması. |
| keyDataType | (İsteğe bağlı) İleti anahtarını Kafka Konusu'ndan almak için veri türü. Ayarlanırsa keyAvroSchema , bu değer genel kayıttır. Kabul edilen değerler , Int, Longve StringdeğerleridirBinary. |
| authenticationMode | (İsteğe bağlı) Basit Kimlik Doğrulaması ve Güvenlik Katmanı (SASL) kimlik doğrulaması kullanılırken kullanılan kimlik doğrulama modu. Desteklenen değerler şunlardır NotSet : (varsayılan), Gssapi, Plain, ScramSha256, ScramSha512. |
| kullanıcı adı | (İsteğe bağlı) SASL kimlik doğrulaması için kullanıcı adı. olduğunda AuthenticationModeGssapidesteklenmez. Daha fazla bilgi için bkz . Bağlantılar . |
| parola | (İsteğe bağlı) SASL kimlik doğrulamasının parolası. olduğunda AuthenticationModeGssapidesteklenmez. Daha fazla bilgi için bkz . Bağlantılar . |
| protokol | (İsteğe bağlı) Aracılarla iletişim kurarken kullanılan güvenlik protokolü. Desteklenen değerler şunlardır NotSet : (varsayılan), plaintext, ssl, sasl_plaintext, sasl_ssl. |
| sslCaLocation | (İsteğe bağlı) Aracının sertifikasını doğrulamak için CA sertifika dosyasının yolu. |
| sslCertificateLocation | (İsteğe bağlı) İstemci sertifikasının yolu. |
| sslKeyLocation | (İsteğe bağlı) Kimlik doğrulaması için kullanılan istemcinin özel anahtarının (PEM) yolu. |
| sslKeyPassword | (İsteğe bağlı) İstemci sertifikasının parolası. |
| sslCertificatePEM | (İsteğe bağlı) PEM biçimindeki istemci sertifikası dize olarak. Daha fazla bilgi için bkz . Bağlantılar . |
| sslKeyPEM | (İsteğe bağlı) PeM biçimindeki istemci özel anahtarı dize olarak. Daha fazla bilgi için bkz . Bağlantılar . |
| sslCaPEM | (İsteğe bağlı) DIZE olarak PEM biçiminde CA sertifikası. Daha fazla bilgi için bkz . Bağlantılar . |
| sslCertificateandKeyPEM | (İsteğe bağlı) PEM biçiminde dize olarak istemci sertifikası ve anahtarı. Daha fazla bilgi için bkz . Bağlantılar . |
| lagThreshold | (İsteğe bağlı) Tetikleyici için gecikme eşiği. |
| schemaRegistryUrl | (İsteğe bağlı) Avro Şema Kayıt Defteri URL'si. Daha fazla bilgi için bkz . Bağlantılar . |
| schemaRegistryUsername | (İsteğe bağlı) Avro Şema Kayıt Defteri için kullanıcı adı. Daha fazla bilgi için bkz . Bağlantılar . |
| schemaRegistryPassword | (İsteğe bağlı) Avro Şema Kayıt Defteri parolası. Daha fazla bilgi için bkz . Bağlantılar . |
| oAuthBearerMethod | (İsteğe bağlı) OAuth Taşıyıcı yöntemi. Kabul edilen değerler oidc ve default'dir. |
| oAuthBearerClientId | (İsteğe bağlı) oAuthBearerMethod olarak ayarlandığında oidc, OAuth taşıyıcı istemci kimliğini belirtir. Daha fazla bilgi için bkz . Bağlantılar . |
| oAuthBearerClientSecret | (İsteğe bağlı) oAuthBearerMethod olarak ayarlandığında oidc, OAuth taşıyıcı istemci gizli dizisini belirtir. Daha fazla bilgi için bkz . Bağlantılar . |
| oAuthBearerScope | (İsteğe bağlı) Aracıya erişim isteğinin kapsamını belirtir. |
| oAuthBearerTokenEndpointUrl | (İsteğe bağlı) Yöntem kullanıldığında belirteci oidc almak için kullanılan OAuth/OIDC veren belirteç uç noktası HTTP(S) URI'sini kullanır. Daha fazla bilgi için bkz . Bağlantılar . |
Yapılandırma
Aşağıdaki tabloda, function.json dosyasında ayarladığınız bağlama yapılandırma özellikleri açıklanmaktadır. Python, yapılandırma özellikleri için snake_case adlandırma kurallarını kullanır.
| function.json özelliği | Açıklama |
|---|---|
| type | (Gerekli) olarak kafkaTriggerayarlayın. |
| direction | (Gerekli) olarak inayarlayın. |
| ad | (Gerekli) İşlev kodunda aracılı verileri temsil eden değişkenin adı. |
| broker_list | (Gerekli) Tetikleyici tarafından izlenen Kafka aracılarının listesi. Daha fazla bilgi için bkz . Bağlantılar . |
| topic | (Gerekli) Tetikleyici tarafından izlenen konu. |
| Önem düzeyi | (İsteğe bağlı) Tetikleyici girişinin kardinalitesini gösterir. Desteklenen değerler (varsayılan) ve ONE'tir MANY . Giriş tek bir ileti olduğunda ve ONE giriş bir ileti dizisi olduğunda kullanınMANY. kullanırken MANYbir de ayarlamanız data_typegerekir. |
| data_type | İşlevler'in parametre değerini nasıl işlediğini tanımlar. Varsayılan olarak, değer bir dize olarak elde edilir ve İşlevler dizeyi gerçek düz eski Java nesnesine (POJO) seri durumdan çıkarmaya çalışır. olduğunda string, giriş yalnızca bir dize olarak değerlendirilir. olduğunda binary, ileti ikili veri olarak alınır ve İşlevler bunu gerçek parametre türü bayt[] olarak seri durumdan çıkarmaya çalışır. |
| consumerGroup | (İsteğe bağlı) Tetikleyici tarafından kullanılan Kafka tüketici grubu. |
| avroSchema | (İsteğe bağlı) Avro protokolü kullanılırken genel bir kaydın şeması. |
| authentication_mode | (İsteğe bağlı) Basit Kimlik Doğrulaması ve Güvenlik Katmanı (SASL) kimlik doğrulaması kullanılırken kullanılan kimlik doğrulama modu. Desteklenen değerler şunlardır NOTSET : (varsayılan), Gssapi, Plain, ScramSha256, ScramSha512. |
| kullanıcı adı | (İsteğe bağlı) SASL kimlik doğrulaması için kullanıcı adı. olduğunda authentication_modeGssapidesteklenmez. Daha fazla bilgi için bkz . Bağlantılar . |
| parola | (İsteğe bağlı) SASL kimlik doğrulamasının parolası. olduğunda authentication_modeGssapidesteklenmez. Daha fazla bilgi için bkz . Bağlantılar . |
| protokol | (İsteğe bağlı) Aracılarla iletişim kurarken kullanılan güvenlik protokolü. Desteklenen değerler şunlardır NOTSET : (varsayılan), plaintext, ssl, sasl_plaintext, sasl_ssl. |
| sslCaLocation | (İsteğe bağlı) Aracının sertifikasını doğrulamak için CA sertifika dosyasının yolu. |
| sslCertificateLocation | (İsteğe bağlı) İstemci sertifikasının yolu. |
| sslKeyLocation | (İsteğe bağlı) Kimlik doğrulaması için kullanılan istemcinin özel anahtarının (PEM) yolu. |
| sslKeyPassword | (İsteğe bağlı) İstemci sertifikasının parolası. |
| lag_threshold | (İsteğe bağlı) Tetikleyici için gecikme eşiği. |
| schema_registry_url | (İsteğe bağlı) Avro Şema Kayıt Defteri URL'si. Daha fazla bilgi için bkz . Bağlantılar . |
| schema_registry_username | (İsteğe bağlı) Avro Şema Kayıt Defteri için kullanıcı adı. Daha fazla bilgi için bkz . Bağlantılar . |
| schema_registry_password | (İsteğe bağlı) Avro Şema Kayıt Defteri parolası. Daha fazla bilgi için bkz . Bağlantılar . |
| o_auth_bearer_method | (İsteğe bağlı) OAuth Taşıyıcı yöntemi. Kabul edilen değerler oidc ve default'dir. |
| o_auth_bearer_client_id | (İsteğe bağlı) o_auth_bearer_method olarak ayarlandığında oidc, OAuth taşıyıcı istemci kimliğini belirtir. Daha fazla bilgi için bkz . Bağlantılar . |
| o_auth_bearer_client_secret | (İsteğe bağlı) o_auth_bearer_method olarak ayarlandığında oidc, OAuth taşıyıcı istemci gizli dizisini belirtir. Daha fazla bilgi için bkz . Bağlantılar . |
| o_auth_bearer_scope | (İsteğe bağlı) Aracıya erişim isteğinin kapsamını belirtir. |
| o_auth_bearer_token_endpoint_url | (İsteğe bağlı) Yöntem kullanıldığında belirteci oidc almak için kullanılan OAuth/OIDC veren belirteç uç noktası HTTP(S) URI'sini kullanır. Daha fazla bilgi için bkz . Bağlantılar . |
Not
Sertifika PEM ile ilgili özellikler ve Avro anahtarıyla ilgili özellikler henüz Python kitaplığında kullanılamaz.
Kullanım
Kafka tetikleyicisi şu anda Kafka olaylarını JSON yükü olan dizeler ve dize dizileri olarak desteklemektedir.
Kafka tetikleyicisi, Kafka iletilerini işleve dize olarak geçirir. Tetikleyici, JSON yükleri olan dize dizilerini de destekler.
Premium planda, Kafka çıkışının ölçeğini birden çok örneğe genişletmek için çalışma zamanı ölçeği izlemeyi etkinleştirmeniz gerekir. Daha fazla bilgi edinmek için bkz . Çalışma zamanı ölçeklendirmesini etkinleştirme.
Kafka tetikleyicileriyle çalışmak için Azure portalındaki Kod + Test sayfasının Test/Çalıştır özelliğini kullanamazsınız. Bunun yerine, test olaylarını tetikleyici tarafından izlenen konuya doğrudan göndermeniz gerekir.
Kafka tetikleyicisi için desteklenen host.json ayarlarının tamamı için bkz . host.json ayarları.
Bağlantılar
Kafka bağlama uzantısı yönetilen kimlik bağlantılarını desteklemiyor. Kafka bağlantılarınızı doğrulamak için şu yöntemlerden birini kullanmalısınız:
- Key Vault referansı: Kafka kimlik bilgilerinizi (şifreler, API anahtarları, sertifikalar) Azure Key Vault'ta saklayıp uygulama ayarlarınızdan referans edin. Fonksiyon uygulamanız, yönetilen kimlikler aracılığıyla Key Vault'a bağlanıyor. Daha fazla bilgi için Define Key Vault bağlantılarını tanımla.
- App Configuration referansı: Azure Uygulama Yapılandırması'da Store bağlantı ayarları, bu da sırlar için Key Vault'a referans verebilir. Daha fazla bilgi için bkz. yapılandırma Azure Uygulaması.
- Paylaşılan sır: Kimlik bilgilerini doğrudan uygulama ayarlarında (dinlenme sırasında şifrelenmiş) depolayın. Daha fazla bilgi için bkz. Paylaşılan gizli bağlantıları tanımlar.
Bağlantı güvenliği hakkında daha fazla bilgi edinmek için Manage connections in Azure İşlevleri bölümüne bakınız.
Önemli
Kimlik bilgileri ayarları bir uygulama ayarına başvurmalıdır. Kod veya yapılandırma dosyalarınızda kimlik bilgilerini sabit kodlamayın. Yerel olarak çalışırken, kimlik bilgileriniz için local.settings.json dosyasını kullanın ve local.settings.json dosyasını yayımlamayın.
Azure'da Confluent tarafından sağlanan yönetilen bir Kafka kümesine bağlanırken aşağıdaki kimlik doğrulama yöntemlerinden birini kullanabilirsiniz.
Not
Flex Consumption planı kullanılırken, dosya konumu tabanlı sertifika kimlik doğrulama özellikleri (SslCaLocation, SslCertificateLocation, SslKeyLocation) desteklenmez. Bunun yerine PEM tabanlı sertifika özelliklerini (SslCaPEM, SslCertificatePEM, SslKeyPEM, SslCertificateandKeyPEM) kullanın veya sertifikaları Azure Key Vault'ta depolayın.
Şema Dizini
Kafka Uzantısında Confluent tarafından sağlanan şema kayıt defterinden yararlanmak için aşağıdaki kimlik bilgilerini ayarlayın:
| Ayar | Önerilen Değer | Açıklama |
|---|---|---|
| SchemaRegistryUrl | SchemaRegistryUrl |
Şema yönetimi için kullanılan şema kayıt defteri hizmetinin URL'si. Genellikle biçimin https://psrc-xyz.us-east-2.aws.confluent.cloud |
| SchemaRegistryUsername | CONFLUENT_API_KEY |
Şema kayıt defterinde temel kimlik doğrulaması için kullanıcı adı (gerekirse). |
| SchemaRegistryPassword | CONFLUENT_API_SECRET |
Şema kayıt defterinde temel kimlik doğrulaması için parola (gerekirse). |
Kullanıcı adı/Parola kimlik doğrulaması
Bu kimlik doğrulama biçimini kullanırken veya ProtocolSaslPlaintextSaslSslAuthenticationModePlain olarak ayarlandığından ScramSha256ScramSha512 emin olun ve kullanılan CA sertifikası varsayılan ISRG Kök X1 sertifikasından farklıysa veya SslCaLocation'yi güncelleştirdiğinden SslCaPEM emin olun.
| Ayar | Önerilen değer | Açıklama |
|---|---|---|
| BrokerList | BootstrapServer |
adlı BootstrapServer uygulama ayarı, Confluent Bulut ayarları sayfasında bulunan bootstrap sunucusunun değerini içerir. değerine benzer.xyz-xyzxzy.westeurope.azure.confluent.cloud:9092 |
| Kullanıcı adı | ConfluentCloudUsername |
adlı ConfluentCloudUsername uygulama ayarı Confluent Cloud web sitesinden API erişim anahtarını içerir. |
| Parola | ConfluentCloudPassword |
adlı ConfluentCloudPassword uygulama ayarı Confluent Cloud web sitesinden alınan API gizli dizisini içerir. |
| SslCaPEM | %SSLCaPemCertificate% |
Uygulama ayarıSSLCaPemCertificate, CA sertifikasını PEM formatında içeren bir Azure Key Vault gizliliğine referans verir. |
SSL kimlik doğrulaması
Protocol'ün SSL olarak ayarlandığından emin olun.
| Ayar | Önerilen Değer | Açıklama |
|---|---|---|
| BrokerList | BootstrapServer |
adlı BootstrapServer uygulama ayarı, Confluent Bulut ayarları sayfasında bulunan bootstrap sunucusunun değerini içerir. değerine benzer.xyz-xyzxzy.westeurope.azure.confluent.cloud:9092 |
| SslCaPEM | %SslCaCertificatePem% |
Uygulama ayarıSslCaCertificatePem, CA sertifikasını PEM formatında içeren bir Azure Key Vault gizliliğine referans verir. |
| SslCertificatePEM | %SslClientCertificatePem% |
Bu adlı uygulama ayarıSslClientCertificatePem, PEM formatında istemci sertifikasını içeren Azure Key Vault gizliliğine atıfta bulunur. |
| SslKeyPEM | %SslClientKeyPem% |
Bu adlı uygulama ayarıSslClientKeyPem, PEM formatında istemci özel anahtarını içeren Azure Key Vault gizliliğine atıfta bulunur. |
| SslCertificateandKeyPEM | %SslClientCertificateAndKeyPem% |
Bu ayarSslClientCertificateAndKeyPem, birleştirilmiş istemci sertifikası ve PEM formatında istemci özel anahtarını içeren Azure Key Vault gizliliğine referans verir. |
| SslKeyPassword | %SslClientKeyPassword% |
Özel anahtarın şifresini içeren (varsa) Azure Key Vault sırrına referans veren uygulama SslClientKeyPassword ayarı. |
Sertifika ve özel anahtar değerlerini doğrudan fonksiyon uygulaması ayarlarında değil, Azure Key Vault'ta depolayın. İlgili uygulama ayarını bir Key Vault referansı olarak ayarlayın, örneğin:
@Microsoft.KeyVault(SecretUri=https://<keyVaultName>.vault.azure.net/secrets/<secretName>)
OAuth kimlik doğrulaması
OAuth kimlik doğrulamasını kullanırken, bağlama tanımlarınızda OAuth ile ilgili özellikleri yapılandırın.
Bu ayarlar için kullandığınız dize değerleri, yerel geliştirme sırasında Azure'da veya local.settings.json dosyasındakiValueskoleksiyonda uygulama ayarları olarak bulunmalıdır.
Bağlama tanımlarınızda ve Protocol değerini de ayarlamanız AuthenticationMode gerekir.