Триггер большого двоичного объекта функции Azure для вложенных папок

У меня есть папка-контейнер, в которой много подпапок (около 3000), файл может попасть в любую из подпапок. Мне нужно отреагировать на каплю, добавленную в подпапку. Я до сих пор не могу понять, как создать триггер большого двоичного объекта, если файлы добавляются в подпапки.

Example:

Excerpt from function.json: 
{
    "name": "myblob",
    "type": "blobTrigger",
    "direction": "in",
    "path": "rootContainer/{name}"
}

OK, a function is triggered if I receive the blob in rootContainer folder

Except from function.json: 
{
    "name": "*/myblob",
    "type": "blobTrigger",
    "direction": "in",
    "path": "rootContainer/{name}"
}
or 
{
    "name": "myblob",
    "type": "blobTrigger",
    "direction": "in",
    "path": "rootContainer/*/{name}"
}

НЕ ОК, функция не запускается

По этой проблеме не так много вопросов, и они до сих пор не дают нормального ответа. Не могу найти никакой информации в документации.

Спасибо!


person Amey P    schedule 02.10.2020    source источник


Ответы (1)


Я заметил, что вы используете */myblob в качестве имени, но это бесполезно.

Например, если вы хотите, чтобы функция запускалась, когда что-то отправляется в папку, такую ​​как test в rootContainer, вам необходимо использовать этот function.json:

{
  "bindings": [
    {
      "name": "myBlob",
      "type": "blobTrigger",
      "direction": "in",
      "path": "rootContainer/test/{name}",
      "connection": "AzureWebJobsStorage"
    }
  ]
}

Путь необходимо определить во время компиляции.

Сообщите мне, поможет ли это вам.

person Bowman Zhu    schedule 05.10.2020
comment
Спасибо за предложение .... !!! Сценарий, который я ищу, отличается .... Существует около 3000 подпапок, и файл может попасть в любую из них, поэтому могу ли я инициировать запуск большого двоичного объекта, если файл попадает в любую из этих подпапок ... . - person Amey P; 05.10.2020
comment
@AmeyP Привет, извини, что ответил слишком поздно. Вы можете установить условие триггера как родительскую папку для ваших 3000 папок. Таким образом можно обрабатывать файлы, которые вы передаете в каждую папку. Если вы хотите запускать каждую папку индивидуально, вы можете создать только 3000 триггеров. Дайте мне знать, сможет ли это ответить на ваши сомнения. - person Bowman Zhu; 07.10.2020
comment
@AmeyP Если вам нужно обрабатывать файлы в каждой папке по-разному, вы можете взять имя большого двоичного объекта после установки родительской папки в качестве условия триггера и написать логику, соответствующую префиксу. (Хранилище BLOB-объектов - это плоское хранилище, поэтому информация о папке будет использоваться в качестве префикса имени BLOB-объекта.) - person Bowman Zhu; 07.10.2020