Déclencheur de liaisons d'entrée Dapr pour Azure Functions
Azure Functions peut être déclenché sur une liaison d'entrée Dapr à l'aide des événements Dapr suivants.
Pour en savoir plus sur l'installation et la configuration de l'extension Dapr, reportez-vous à Présentation de l'extension Dapr.
Exemple
Une fonction C# peut être créée à l’aide de l’un des modes C# suivants :
Modèle d’exécution | Description |
---|---|
Modèle de worker isolé | Le code de votre fonction s’exécute dans un processus Worker .NET distinct. Utilisez avec les versions prises en charge de .NET et .NET Framework. Pour plus d’informations, consultez Développer les fonctions de processus Worker isolé .NET. |
Modèle in-process | Le code de votre fonction s’exécute dans le même processus que le processus hôte Functions. Prend uniquement en charge les versions LTS (Long Term Support) de .NET. Pour plus d’informations, consultez Développer des fonctions de bibliothèque de classes .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}");
}
Le code Java du déclencheur de liaison d'entrée Dapr est présenté ci-dessous :
@FunctionName("ConsumeMessageFromKafka")
public String run(
@DaprBindingTrigger(
bindingName = "%KafkaBindingName%")
)
Utilisez l’objet app
pour inscrire le 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)
}
});
L'exemple suivant montre des déclencheurs Dapr dans un fichier function.json et le code PowerShell qui utilise ces liaisons.
Vous trouverez ici le fichier function.json pour daprBindingTrigger
:
{
"bindings": [
{
"type": "daprBindingTrigger",
"bindingName": "%KafkaBindingName%",
"name": "triggerData",
"direction": "in"
}
]
}
Pour plus d’informations sur les propriétés du fichier function.json, consultez la section Configuration.
Dans le 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"
L'exemple suivant montre un déclencheur de liaison d'entrée Dapr, qui utilise le modèle de programmation Python v2. Pour utiliser le daprBinding
dans votre code d'application de fonction 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)
Attributs
Dans le modèle in-process, utilisez le DaprBindingTrigger
pour déclencher une liaison d'entrée Dapr, qui prend en charge les propriétés suivantes.
Paramètre | Description |
---|---|
BindingName | Nom du déclencheur Dapr. S'il n'est pas spécifié, le nom de la fonction est utilisé comme nom de déclencheur. |
Annotations
L'annotation DaprBindingTrigger
vous permet de créer une fonction qui est déclenchée par le composant de liaison que vous avez créé.
Élément | Description |
---|---|
bindingName | Nom de la liaison Dapr. |
Configuration
Le tableau suivant décrit les propriétés de configuration de liaison que vous définissez dans le code.
Propriété | Description |
---|---|
bindingName | Le nom de la liaison. |
Le tableau suivant décrit les propriétés de configuration de liaison que vous définissez dans le fichier function.json.
Propriété function.json | Description |
---|---|
bindingName | Le nom de la liaison. |
Pour obtenir des exemples complets, consultez la section Exemple.
Usage
Pour utiliser le déclencheur de liaison d'entrée Dapr, configurez d'abord un composant de liaison d'entrée Dapr. Pour en savoir plus sur le composant à utiliser et sur sa configuration, reportez-vous à la documentation officielle de Dapr.
- Spécifications des composants de liaison d'entrée Dapr
- Comment : déclencher votre application avec des liaisons d'entrée
Pour utiliser daprBindingTrigger
dans Python v2, configurez votre projet avec les dépendances appropriées.
Dans votre fichier
requirements.text
, ajoutez la ligne suivante :azure-functions==1.18.0b3
Dans le terminal, installez la bibliothèque Python.
pip install -r .\requirements.txt
Modifiez votre fichier
local.setting.json
avec la configuration suivante :"PYTHON_ISOLATE_WORKER_DEPENDENCIES":1