Anmerkung
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Azure Functions können mithilfe der folgenden Dapr-Ereignisse für eine Dapr-Eingabebindung ausgelöst werden.
Informationen zu Setup- und Konfigurationsdetails der Dapr-Erweiterung finden Sie in der Dapr-Erweiterungsübersicht.
Example
Eine C#-Funktion kann mit einem der folgenden C#-Modi erstellt werden:
| Execution model | Description |
|---|---|
| Isoliertes Workermodell | Ihr Funktionscode wird in einem separaten .NET-Workerprozess ausgeführt. Verwenden Sie dazu unterstützte Versionen von .NET und .NET Framework. Weitere Informationen finden Sie im Handbuch zum Ausführen von C#-Azure-Funktionen im isolierten Arbeitsmodell. |
| In-process model | Ihr Funktionscode wird im gleichen Prozess wie der Functions-Hostprozess ausgeführt. Unterstützt nur LTS-Versionen (Long Term Support) von .NET. Weitere Informationen finden Sie unter Entwickeln von C#-Klassenbibliotheksfunktionen mithilfe von Azure Functions. |
[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}");
}
Im Folgenden sehen Sie den Java-Code für den Dapr-Eingabebindungstrigger:
@FunctionName("ConsumeMessageFromKafka")
public String run(
@DaprBindingTrigger(
bindingName = "%KafkaBindingName%")
)
Verwenden Sie das app Objekt, um folgendes daprBindingTriggerzu registrieren:
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)
}
});
The following example shows Dapr triggers in a function.json file and PowerShell code that uses those bindings.
Here's the function.json file for daprBindingTrigger:
{
"bindings": [
{
"type": "daprBindingTrigger",
"bindingName": "%KafkaBindingName%",
"name": "triggerData",
"direction": "in"
}
]
}
For more information about function.json file properties, see the Configuration section.
In code:
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"
Das folgende Beispiel zeigt einen Dapr Input Binding-Trigger, der das v2 Python-Programmiermodell verwendet. So verwenden Sie den daprBinding In-Python-Funktions-App-Code:
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)
Attributes
In the in-process model, use the DaprBindingTrigger to trigger a Dapr input binding, which supports the following properties.
| Parameter | Description |
|---|---|
| BindingName | Der Name des Dapr-Triggers. Wenn nicht angegeben, wird der Name der Funktion als Triggername verwendet. |
Annotations
Mit der DaprBindingTrigger Anmerkung können Sie eine Funktion erstellen, die von der von Ihnen erstellten Bindungskomponente ausgelöst wird.
| Element | Description |
|---|---|
| bindingName | Der Name der Dapr-Bindung. |
Configuration
Die folgende Tabelle gibt Aufschluss über die Bindungskonfigurationseigenschaften, die Sie im Code festlegen.
| Property | Description |
|---|---|
| bindingName | Der Name der Bindung. |
Die folgende Tabelle gibt Aufschluss über die Bindungskonfigurationseigenschaften, die Sie in der Datei function.json festlegen.
| function.json property | Description |
|---|---|
| bindingName | Der Name der Bindung. |
See the Example section for complete examples.
Usage
Um den Dapr Input Binding Trigger zu verwenden, richten Sie zunächst eine Dapr-Eingabebindungskomponente ein. In der offiziellen Dapr-Dokumentation erfahren Sie mehr darüber, welche Komponente Sie verwenden sollten und wie Sie diese einrichten können.
Um daprBindingTrigger in Python v2 zu verwenden, richten Sie Ihr Projekt mit den richtigen Abhängigkeiten ein.
Fügen Sie in Ihrer
requirements.text-Datei die folgende Zeile hinzu:azure-functions==1.18.0b3Installieren Sie im Terminal die Python-Bibliothek.
pip install -r .\requirements.txtÄndern Sie ihre
local.setting.json-Datei mit der folgenden Konfiguration:"PYTHON_ISOLATE_WORKER_DEPENDENCIES":1