Cosmosdb Trigger for Azure Применение функций - PullRequest
0 голосов
/ 27 февраля 2020

Мы разрабатываем приложения с использованием функций azure (python). У меня есть 2 вопроса относительно Azure приложения функций

  1. Можем ли мы отслеживать 2 коллекции, используя один триггер Cosmosdb? --- Я просмотрел документацию и кажется, что она не поддерживает. Я что-то пропустил?

  2. Если есть две функции, контролирующие одну и ту же коллекцию, будет активирована только одна из функций. - Я наблюдал это поведение сегодня. Я запускал 2 экземпляра приложения функций, и данные из триггера cosmosdb были отправлены только одному приложению. Я пытаюсь выяснить причину этого.

1 Ответ

0 голосов
/ 27 февраля 2020

РЕДАКТИРОВАТЬ: 1-я никогда не использовал несколько входных триггеров, но согласно официальной вики это возможно, просто добавьте функцию. json file:

{
  "bindings": [
    {
      "type": "queueTrigger",
      "direction": "in",
      "queueName": "image-resize"
    },
    {
      "type": "blob",
      "name": "original",
      "direction": "in",
      "path": "images-original/{name}"
    },
    {
      "type": "blob",
      "name": "resized",
      "direction": "out",
      "path": "images-resized/{name}"
    }
  ]
}

PS: Я знаю, что вы используете cosmosDB, пример выше просто для иллюстрации

2 - я предполагаю, что это связано с тем, как это реализовано (например, topi c vs queue). Таким образом, первая функция блокирует событие / сообщение, затем вторая не знает о событии. На данный момент Durable Functions для python все еще находится в стадии разработки и должен быть выпущен в следующем месяце (03/2020) . Это позволит вам связать выполнение функций так же, как это доступно для c# / узла:

https://docs.microsoft.com/en-us/azure/azure-functions/durable/durable-functions-overview?tabs=csharp#chaining

Что вы можете сделать, это вывести на очередь, которая вызовет вашу вторую функцию после завершения первой функции. (почти все, что предлагает Durable Functions)

...