Udostępnij za pośrednictwem


Wyzwalacz powiązań wejściowych języka Dapr dla usługi Azure Functions

Usługa Azure Functions może być wyzwalana w powiązaniu wejściowym języka Dapr przy użyciu następujących zdarzeń języka Dapr.

Aby uzyskać informacje na temat konfiguracji i szczegółów konfiguracji rozszerzenia Języka Dapr, zobacz Omówienie rozszerzenia Języka Dapr.

Przykład

Funkcję języka C# można utworzyć przy użyciu jednego z następujących trybów języka C#:

Model wykonania opis
Model izolowanego procesu roboczego Kod funkcji jest uruchamiany w osobnym procesie roboczym platformy .NET. Używaj z obsługiwanymi wersjami platform .NET i .NET Framework. Aby dowiedzieć się więcej, zobacz Develop .NET isolated worker process functions (Tworzenie izolowanych funkcji procesów roboczych platformy .NET).
Model w procesie Kod funkcji jest uruchamiany w tym samym procesie co proces hosta usługi Functions. Obsługuje tylko wersje long term support (LTS) platformy .NET. Aby dowiedzieć się więcej, zobacz Tworzenie funkcji biblioteki klas platformy .NET.
[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}");
}

Oto kod Java wyzwalacza powiązania wejściowego języka Dapr:

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

Użyj obiektu , app aby zarejestrować obiekt daprBindingTrigger:

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)
    }
});

W poniższym przykładzie przedstawiono wyzwalacze języka Dapr w pliku function.json i kodzie programu PowerShell, który używa tych powiązań.

Oto plik function.json dla elementu daprBindingTrigger:

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

Aby uzyskać więcej informacji na temat function.json właściwości pliku, zobacz sekcję Konfiguracja.

W kodzie:

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"

W poniższym przykładzie pokazano wyzwalacz powiązania wejściowego języka Dapr, który używa modelu programowania w języku Python w wersji 2. Aby użyć elementu daprBinding w kodzie aplikacji funkcji języka Python:

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)

Atrybuty

W modelu przetwarzania użyj DaprBindingTrigger polecenia , aby wyzwolić powiązanie wejściowe języka Dapr, które obsługuje następujące właściwości.

Parametr Opis
BindingName Nazwa wyzwalacza Języka Dapr. Jeśli nie zostanie określona, nazwa funkcji jest używana jako nazwa wyzwalacza.

Adnotacje

Adnotacja DaprBindingTrigger umożliwia utworzenie funkcji wyzwalanej przez utworzony składnik powiązania.

Element opis
bindingName Nazwa powiązania języka Dapr.

Konfigurowanie

W poniższej tabeli opisano właściwości konfiguracji powiązania ustawione w kodzie.

Właściwości opis
bindingName Nazwa powiązania.

W poniższej tabeli opisano właściwości konfiguracji powiązania ustawione w pliku function.json.

właściwość function.json opis
bindingName Nazwa powiązania.

W poniższej tabeli opisano właściwości konfiguracji powiązania ustawione @dapp.dapr_binding_trigger w kodzie języka Python.

Właściwości opis
binding_name Nazwa powiązania.

Zobacz sekcję Przykład, aby zapoznać się z kompletnymi przykładami.

Użycie

Aby użyć wyzwalacza powiązania wejściowego języka Dapr, rozpocznij od skonfigurowania składnika powiązania wejściowego języka Dapr. Więcej informacji na temat tego, który składnik ma być używany i jak go skonfigurować, znajdziesz w oficjalnej dokumentacji języka Dapr.

Aby użyć elementu daprBindingTrigger w języku Python w wersji 2, skonfiguruj projekt przy użyciu poprawnych zależności.

  1. Tworzenie i aktywowanie środowiska wirtualnego.

  2. requirements.text W pliku dodaj następujący wiersz:

    azure-functions==1.18.0b3
    
  3. W terminalu zainstaluj bibliotekę języka Python.

    pip install -r .\requirements.txt
    
  4. local.setting.json Zmodyfikuj plik przy użyciu następującej konfiguracji:

    "PYTHON_ISOLATE_WORKER_DEPENDENCIES":1
    

Następne kroki

Dowiedz się więcej o wywołaniu usługi Dapr.