Sdílet prostřednictvím


Trigger vstupních vazeb Dapr pro Azure Functions

Azure Functions je možné aktivovat u vstupní vazby Dapr pomocí následujících událostí Dapr.

Informace o nastavení a konfiguraci rozšíření Dapr najdete v přehledu rozšíření Dapr.

Příklad

Funkci jazyka C# je možné vytvořit pomocí jednoho z následujících režimů jazyka C#:

Model spouštění Popis
Izolovaný model pracovního procesu Kód funkce se spouští v samostatném pracovním procesu .NET. Používá se s podporovanými verzemi rozhraní .NET a .NET Framework. Další informace najdete v tématu Vývoj funkcí izolovaného pracovního procesu .NET.
Model v procesu Kód funkce se spouští ve stejném procesu jako hostitelský proces služby Functions. Podporuje pouze verze dlouhodobé podpory (LTS) rozhraní .NET. Další informace najdete v tématu Vývoj funkcí knihovny tříd .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}");
}

Tady je kód Java pro trigger vstupní vazby Dapr:

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

Pomocí objektu app zaregistrujte 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)
    }
});

Následující příklad ukazuje triggery Dapr v souboru function.json a kódu PowerShellu, který tyto vazby používá.

Tady je soubor function.json pro daprBindingTrigger:

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

Další informace o function.json vlastnosti souboru naleznete v části Konfigurace .

V kódu:

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"

Následující příklad ukazuje trigger vstupní vazby Dapr, který používá programovací model Pythonu v2. Použití kódu aplikace funkcí Pythonu daprBinding :

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)

Atributy

V modelu v procesu použijte DaprBindingTrigger k aktivaci vstupní vazby Dapr, která podporuje následující vlastnosti.

Parametr Popis
BindingName Název triggeru Dapr. Pokud není zadaný, název funkce se použije jako název triggeru.

Poznámky

Poznámka DaprBindingTrigger umožňuje vytvořit funkci, která se aktivuje komponentou vazby, kterou jste vytvořili.

Element (Prvek) Popis
bindingName Název vazby Dapr.

Konfigurace

Následující tabulka vysvětluje vlastnosti konfigurace vazby, které jste nastavili v kódu.

Vlastnost Popis
bindingName Název vazby.

Následující tabulka vysvětluje vlastnosti konfigurace vazby, které jste nastavili v souboru function.json.

vlastnost function.json Popis
bindingName Název vazby.

Následující tabulka vysvětluje vlastnosti konfigurace vazby, @dapp.dapr_binding_trigger které jste nastavili v kódu Pythonu.

Vlastnost Popis
binding_name Název vazby.

Kompletní příklady najdete v části Příklad.

Využití

Pokud chcete použít trigger vstupní vazby Dapr, začněte nastavením komponenty vstupní vazby Dapr. Další informace o tom, kterou komponentu použít a jak ji nastavit, najdete v oficiální dokumentaci k Dapr.

Pokud chcete použít python daprBindingTrigger v2, nastavte projekt se správnými závislostmi.

  1. Vytvoření a aktivace virtuálního prostředí

  2. requirements.text Do souboru přidejte následující řádek:

    azure-functions==1.18.0b3
    
  3. V terminálu nainstalujte knihovnu Pythonu.

    pip install -r .\requirements.txt
    
  4. Upravte local.setting.json soubor pomocí následující konfigurace:

    "PYTHON_ISOLATE_WORKER_DEPENDENCIES":1
    

Další kroky

Přečtěte si další informace o vyvolání služby Dapr.