Во-первых, вы должны настроить stati c путь большого двоичного объекта, для которого вы хотите запустить функцию. Например: на изображении ниже путь установлен на container/file.csv
. Поэтому, когда в моем контейнере BLOB-объектов с именем container
есть файл с именем file.csv
, запускается триггер BLOB-объекта.
Это мой пример код функции:
public static void Run(Stream myBlob, ILogger log)
{
log.LogInformation($"C# Blob trigger function Processed blob with Size: {myBlob.Length} Bytes");
}
Поскольку вы используете. NET, а не csx, код для вас будет выглядеть следующим образом:
[FunctionName("Function1")]
public static void Run([BlobTrigger("container/file.csv", Connection = "AzureWebJobsStorage")]Stream myBlob, ILogger log)
{
log.LogInformation($"C# Blob trigger function Processed blob with Size: {myBlob.Length} Bytes");
}
Смотрите, он выполняет функцию, когда я копирую файл с именем file.csv
до container
. Он не запускается для любых других файлов в любых других контейнерах. Полный путь должен совпадать.
Кроме того, каждая функция azure имеет файл функции. json, и это то, что используется для определения параметры привязки для функции. При использовании. NET, если вы выполните dotnet build
и go и загляните в папку bin сборки, вы увидите, что генерируется function.json
.
Единственная проблема в вашем коде функции заключается в том, что у вас есть второй параметр name
. Этот параметр требуется только в том случае, если вы определяете динамический путь c в привязках функций, что не подходит для вас, так как вам нужен предопределенный путь stati c. Поэтому попробуйте удалить имя второго аргумента, и оно должно работать нормально.