Aracılığıyla paylaş


Azure İşlevleri için Dapr Giriş Bağlamaları tetikleyicisi

Azure İşlevleri, aşağıdaki Dapr olayları kullanılarak bir Dapr giriş bağlaması üzerinde tetiklenebilir.

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.
[FunctionName("ConsumeMessageFromKafka")]
public static void Run(
    // Note: the value of BindingName must match the binding name in components/kafka-bindings.yaml
    [DaprBindingTrigger(BindingName = "%KafkaBindingName%")] JObject triggerData,
    ILogger log)
{
    log.LogInformation("Hello from Kafka!");
    log.LogInformation($"Trigger data: {triggerData}");
}

Dapr Giriş Bağlama tetikleyicisi için Java kodu aşağıdadır:

@FunctionName("ConsumeMessageFromKafka")
public String run(
        @DaprBindingTrigger(
            bindingName = "%KafkaBindingName%")
)

app öğesini kaydetmek daprBindingTriggeriçin nesnesini kullanın:

const { app, trigger } = require('@azure/functions');

app.generic('ConsumeMessageFromKafka', {
    trigger: trigger.generic({
        type: 'daprBindingTrigger',
        bindingName: "%KafkaBindingName%",
        name: "triggerData"
    }),
    handler: async (request, context) => {
        context.log("Node function processed a ConsumeMessageFromKafka request from the Dapr Runtime.");
        context.log(context.triggerMetadata.triggerData)
    }
});

Aşağıdaki örnekte, function.json dosyasındaki Dapr tetikleyicileri ve bu bağlamaları kullanan PowerShell kodu gösterilmektedir.

için function.json dosyası aşağıdadır:daprBindingTrigger

{
  "bindings": [
    {
      "type": "daprBindingTrigger",
      "bindingName": "%KafkaBindingName%",
      "name": "triggerData",
      "direction": "in"
    }
  ]
}

function.json dosya özellikleri hakkında daha fazla bilgi için Yapılandırma bölümüne bakın.

Kod:

using namespace System
using namespace Microsoft.Azure.WebJobs
using namespace Microsoft.Extensions.Logging
using namespace Microsoft.Azure.WebJobs.Extensions.Dapr
using namespace Newtonsoft.Json.Linq

param (
    $triggerData
)

Write-Host "PowerShell function processed a ConsumeMessageFromKafka request from the Dapr Runtime."

$jsonString = $triggerData | ConvertTo-Json

Write-Host "Trigger data: $jsonString"

Aşağıdaki örnekte, v2 Python programlama modelini kullanan bir Dapr Giriş Bağlama tetikleyicisi gösterilmektedir. Python işlev uygulama kodunuzda öğesini kullanmak daprBinding için:

import logging
import json
import azure.functions as func

app = func.FunctionApp()

@app.function_name(name="ConsumeMessageFromKafka")
@app.dapr_binding_trigger(arg_name="triggerData", binding_name="%KafkaBindingName%")
def main(triggerData: str) -> None:
    logging.info('Python function processed a ConsumeMessageFromKafka request from the Dapr Runtime.')
    logging.info('Trigger data: ' + triggerData)

Özellikler

İşlem içi modelde, aşağıdaki özellikleri destekleyen bir Dapr giriş bağlamasını tetikleme amacıyla öğesini kullanınDaprBindingTrigger.

Parametre Açıklama
Bağlama Adı Dapr tetikleyicisinin adı. Belirtilmezse, tetikleyici adı olarak işlevin adı kullanılır.

Ek Açıklamalar

Ek DaprBindingTrigger açıklama, oluşturduğunuz bağlama bileşeni tarafından tetiklenen bir işlev oluşturmanıza olanak tanır.

Öğe Açıklama
bindingName Dapr bağlamasının adı.

Yapılandırma

Aşağıdaki tabloda kodda ayarladığınız bağlama yapılandırma özellikleri açıklanmaktadır.

Özellik Açıklama
bindingName Bağlamanın adı.

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
bindingName Bağlamanın adı.

Aşağıdaki tabloda Python kodunuzda ayarladığınız bağlama yapılandırma özellikleri @dapp.dapr_binding_trigger açıklanmaktadır.

Özellik Açıklama
binding_name Bağlamanın adı.

Tam örnekler için Örnek bölümüne bakın.

Kullanım

Dapr Giriş Bağlama tetikleyicisini kullanmak için bir Dapr giriş 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.

python v2'de kullanmak daprBindingTrigger için projenizi doğru bağımlılıklarla ayarlayın.

  1. Sanal ortam oluşturma ve etkinleştirme.

  2. Dosyanıza requirements.text aşağıdaki satırı ekleyin:

    azure-functions==1.18.0b3
    
  3. Terminalde Python kitaplığını yükleyin.

    pip install -r .\requirements.txt
    
  4. Dosyanızı local.setting.json aşağıdaki yapılandırmayla değiştirin:

    "PYTHON_ISOLATE_WORKER_DEPENDENCIES":1
    

Sonraki adımlar

Dapr hizmeti çağırma hakkında daha fazla bilgi edinin.