Azure İşlevleri için Dapr Bağlama çıkış bağlaması
Dapr çıkış bağlaması, bir işlev yürütmesi sırasında Bir Dapr çıkış bağlamasına değer göndermenizi sağlar.
Dapr uzantısının kurulum ve yapılandırma ayrıntıları hakkında bilgi için bkz. Dapr uzantısına genel bakış.
Örnek
C# işlevi aşağıdaki C# modlarından biri kullanılarak oluşturulabilir:
Yürütme modeli | Açıklama |
---|---|
Yalıtılmış çalışan modeli | İşlev kodunuz ayrı bir .NET çalışan işleminde çalışır. Desteklenen .NET ve .NET Framework sürümleriyle kullanın. Daha fazla bilgi edinmek için bkz . .NET yalıtılmış çalışan işlemi işlevleri geliştirme. |
İşlem içi model | İşlev kodunuz İşlevler konak işlemiyle aynı işlemde çalışır. .NET'in yalnızca Uzun Süreli Destek (LTS) sürümlerini destekler. Daha fazla bilgi edinmek için bkz . .NET sınıf kitaplığı işlevleri geliştirme. |
Aşağıdaki örnek, bağlama isteğini okumak ve işlemek için bir Dapr hizmeti çağırma tetikleyicisi ve bir Dapr çıkış bağlaması kullanmayı gösterir.
[FunctionName("SendMessageToKafka")]
public static async Task Run(
[DaprServiceInvocationTrigger] JObject payload,
[DaprBinding(BindingName = "%KafkaBindingName%", Operation = "create")] IAsyncCollector<object> messages,
ILogger log)
{
log.LogInformation("C# function processed a SendMessageToKafka request.");
await messages.AddAsync(payload);
}
Aşağıdaki örnek, ile DaprServiceInvocationTrigger
bağlamasını DaprBindingOutput
kullanarak bir "SendMessagetoKafka"
işlev oluşturur:
@FunctionName("SendMessageToKafka")
public String run(
@DaprServiceInvocationTrigger(
methodName = "SendMessageToKafka")
String payload,
@DaprBindingOutput(
bindingName = "%KafkaBindingName%",
operation = "create")
OutputBinding<String> product,
final ExecutionContext context) {
context.getLogger().info("Java function processed a SendMessageToKafka request.");
product.setValue(payload);
return payload;
}
Aşağıdaki örnekte, Dapr çıkış bağlaması nesnesi tarafından kaydedilen Dapr çağırma çıkış tetikleyicisi app
ile eşleştirilir:
const { app, trigger } = require('@azure/functions');
app.generic('SendMessageToKafka', {
trigger: trigger.generic({
type: 'daprServiceInvocationTrigger',
name: "payload"
}),
return: daprBindingOuput,
handler: async (request, context) => {
context.log("Node function processed a SendMessageToKafka request from the Dapr Runtime.");
context.log(context.triggerMetadata.payload)
return { "data": context.triggerMetadata.payload };
}
});
Aşağıdaki örneklerde, function.json dosyasındaki Dapr tetikleyicileri ve bu bağlamaları kullanan PowerShell kodu gösterilmektedir.
için function.json dosyası aşağıdadır:daprBinding
{
"bindings":
{
"type": "daprBinding",
"direction": "out",
"bindingName": "%KafkaBindingName%",
"operation": "create",
"name": "messages"
}
}
function.json dosya özellikleri hakkında daha fazla bilgi için Yapılandırma bölümüne bakın.
Kod:
using namespace System.Net
# Input bindings are passed in via param block.
param($req, $TriggerMetadata)
Write-Host "Powershell SendMessageToKafka processed a request."
$invoke_output_binding_req_body = @{
"data" = $req
}
# Associate values to output bindings by calling 'Push-OutputBinding'.
Push-OutputBinding -Name messages -Value $invoke_output_binding_req_body
Aşağıdaki örnekte, v2 Python programlama modelini kullanan bir Dapr Bağlaması çıkış bağlaması gösterilmektedir. Python işlev uygulama kodunuzda kullanmak @dapp.dapr_binding_output
için:
import logging
import json
import azure.functions as func
app = func.FunctionApp()
@app.function_name(name="SendMessageToKafka")
@app.dapr_service_invocation_trigger(arg_name="payload", method_name="SendMessageToKafka")
@app.dapr_binding_output(arg_name="messages", binding_name="%KafkaBindingName%", operation="create")
def main(payload: str, messages: func.Out[bytes]) -> None:
logging.info('Python processed a SendMessageToKafka request from the Dapr Runtime.')
messages.set(json.dumps({"data": payload}).encode('utf-8'))
Özellikler
İşlem içi modelde, şu parametreleri destekleyen bir Dapr bağlama çıkış bağlaması tanımlamak için öğesini DaprBinding
kullanın:
Parametre | Açıklama | Öznitelik aracılığıyla gönderilebilir | RequestBody aracılığıyla gönderilebilir |
---|---|---|---|
Bağlama Adı | Dapr bağlamasının adı. | ✔️ | ✔️ |
İşlem | Yapılandırılan bağlama işlemi. | ✔️ | ✔️ |
Meta veriler | Meta veri ad alanı. | ❌ | ✔️ |
Veri | Gerekli. Bağlama işleminin verileri. | ❌ | ✔️ |
Ek Açıklamalar
Ek DaprBindingOutput
açıklama, çıkış bağlaması gönderen bir işlev oluşturmanıza olanak tanır.
Öğe | Açıklama | Öznitelik aracılığıyla gönderilebilir | RequestBody aracılığıyla gönderilebilir |
---|---|---|---|
bindingName | Dapr bağlamasının adı. | ✔️ | ✔️ |
Çıkış | Yapılandırılan bağlama işlemi. | ✔️ | ✔️ |
meta veriler | Meta veri ad alanı. | ❌ | ✔️ |
data | Gerekli. Bağlama işleminin verileri. | ❌ | ✔️ |
Yapılandırma
Aşağıdaki tabloda kodda ayarladığınız bağlama yapılandırma özellikleri açıklanmaktadır.
Özellik | Açıklama | Öznitelik aracılığıyla gönderilebilir | RequestBody aracılığıyla gönderilebilir |
---|---|---|---|
bindingName | Bağlamanın adı. | ✔️ | ✔️ |
Işlem | Bağlama işlemi. | ✔️ | ✔️ |
meta veriler | Meta veri ad alanı. | ❌ | ✔️ |
data | Gerekli. Bağlama işleminin verileri. | ❌ | ✔️ |
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 | Öznitelik aracılığıyla gönderilebilir | RequestBody aracılığıyla gönderilebilir |
---|---|---|---|
bindingName | Bağlamanın adı. | ✔️ | ✔️ |
Işlem | Bağlama işlemi. | ✔️ | ✔️ |
meta veriler | Meta veri ad alanı. | ❌ | ✔️ |
data | Gerekli. Bağlama işleminin verileri. | ❌ | ✔️ |
Aşağıdaki tabloda Python kodunuzda ayarladığınız bağlama yapılandırma özellikleri @dapp.dapr_binding_output
açıklanmaktadır.
Özellik | Açıklama | Öznitelik aracılığıyla gönderilebilir | RequestBody aracılığıyla gönderilebilir |
---|---|---|---|
binding_name | Bağlama olayının adı. | ✔️ | ✔️ |
Işlem | Bağlama işlemi adı/tanımlayıcısı. | ✔️ | ✔️ |
meta veriler | Meta veri ad alanı. | ❌ | ✔️ |
data | Gerekli. Bağlama işleminin verileri. | ❌ | ✔️ |
Özellikler hem Özniteliklerde RequestBody
hem de içinde tanımlanmışsa, içinde sağlanan RequestBody
verilere öncelik verilir.
Tam örnekler için Örnek bölümüne bakın.
Kullanım
Dapr çıkış bağlamasını kullanmak için bir Dapr çıkış bağlama bileşeni ayarlayarak başlayın. Resmi Dapr belgelerinde hangi bileşenin kullanılacağı ve nasıl ayarlanacağı hakkında daha fazla bilgi edinebilirsiniz.
- Dapr çıkış bağlama bileşeni belirtimleri
- Nasıl yapılır: Dış kaynaklarla arabirim sağlamak için çıkış bağlamalarını kullanma
python v2'de kullanmak daprBinding
için projenizi doğru bağımlılıklarla ayarlayın.
Sanal ortam oluşturma ve etkinleştirme.
Dosyanıza
requirements.text
aşağıdaki satırı ekleyin:azure-functions==1.18.0b3
Terminalde Python kitaplığını yükleyin.
pip install -r .\requirements.txt
Dosyanızı
local.setting.json
aşağıdaki yapılandırmayla değiştirin:"PYTHON_ISOLATE_WORKER_DEPENDENCIES":1
Sonraki adımlar
Geri Bildirim
https://aka.ms/ContentUserFeedback.
Çok yakında: 2024 boyunca, içerik için geri bildirim mekanizması olarak GitHub Sorunları’nı kullanımdan kaldıracak ve yeni bir geri bildirim sistemiyle değiştireceğiz. Daha fazla bilgi için bkz.Gönderin ve geri bildirimi görüntüleyin