Поделиться через


Триггер входных привязок Dapr для Функции Azure

Функции Azure можно активировать в входной привязке Dapr с помощью следующих событий Dapr.

Сведения о настройке и настройке расширения Dapr см. в обзоре расширения Dapr.

Пример

Функцию C# можно создать с помощью одного из следующих режимов C#:

Модель выполнения Description
Изолированная рабочая модель Код функции выполняется в отдельном рабочем процессе .NET. Используйте поддерживаемые версии .NET и платформа .NET Framework. Дополнительные сведения см. в статье "Разработка изолированных рабочих процессов .NET".
Модель внутрипроцессного процесса Код функции выполняется в том же процессе, что и хост-процесс Функций. Поддерживает только долгосрочные версии .NET. Дополнительные сведения см. в статье "Разработка функций библиотеки классов .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}");
}

Ниже приведен код Java для триггера входной привязки Dapr:

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

app Используйте объект для регистрации 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)
    }
});

В следующем примере показаны триггеры Dapr в файле function.json и коде PowerShell, использующем эти привязки.

Ниже приведен файл function.json для daprBindingTrigger:

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

Дополнительные сведения о свойствах файла function.json см. в разделе "Конфигурация ".

В коде:

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"

В следующем примере показан триггер входной привязки Dapr, использующий модель программирования Python версии 2. Чтобы использовать daprBinding код приложения-функции 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)

Атрибуты

В модели внутрипроцессного процесса используйте DaprBindingTrigger входную привязку Dapr, которая поддерживает следующие свойства.

Параметр Описание
BindingName Имя триггера Dapr. Если это не указано, имя функции используется в качестве имени триггера.

Заметки

Заметка DaprBindingTrigger позволяет создать функцию, которая активируется созданным компонентом привязки.

Элемент Description
bindingName Имя привязки Dapr.

Настройка

В следующей таблице описываются свойства конфигурации привязки, заданные в коде.

Свойство Description
bindingName Имя привязки.

В следующей таблице описываются свойства конфигурации привязки, которые задаются в файле function.json.

Свойство в function.json Description
bindingName Имя привязки.

В следующей таблице описываются свойства конфигурации привязки, заданные @dapp.dapr_binding_trigger в коде Python.

Свойство Description
binding_name Имя привязки.

Подробные примеры см. в разделе Примеры.

Использование

Чтобы использовать триггер входной привязки Dapr, начните с настройки компонента входной привязки Dapr. Дополнительные сведения о том, какой компонент следует использовать и как настроить его в официальной документации dapr.

Чтобы использовать daprBindingTrigger Python версии 2, настройте проект с правильными зависимостями.

  1. Создание и активация виртуальной среды.

  2. requirements.text В файле добавьте следующую строку:

    azure-functions==1.18.0b3
    
  3. В терминале установите библиотеку Python.

    pip install -r .\requirements.txt
    
  4. Измените local.setting.json файл со следующей конфигурацией:

    "PYTHON_ISOLATE_WORKER_DEPENDENCIES":1
    

Следующие шаги

Дополнительные сведения о вызове службы Dapr.