我正在嘗試使用SaaS File觸發器來偵聽FTP站點中的新文件。首先,你甚至可以定義一個變量文件夾,如"path": "inputTest/{folder}/{fileName}"
?或者,也許聽所有子文件夾中的新文件,並在文件名中包含路徑,如inputTest/{file}
,其中file
可能等於"subfolder/fileName.txt"
?這裏的想法是,我將有多個客戶端上傳文件到他們自己的目錄中,我不想爲每個客戶端創建一個新的函數/觸發器。如何在Azure函數SaaS文件綁定中設置文件夾名稱和文件名?
輸出結果也一樣。我想要一個可以寫入各種文件夾的SasS文件綁定。我想我可以使用here描述的方法,但我仍然需要對其進行測試。我的想法是,我想要一次讀取一行讀取輸入文件,以某種方式處理該行,並將其寫入另一個文件。本質上是一種變換。可能還有其他方法可以做到這一點,但我希望更好地理解這種綁定。
UPDATE
我試圖爲輸出結合下述:
using System;
using Microsoft.Azure.WebJobs;
public static void Run(string input, IBinder output, TraceWriter log)
{
string connectionStringSetting = Environment.GetEnvironmentVariable(
"ftp_FTP", EnvironmentVariableTarget.Process);
var path = "InputTest/SubFolder/fileName.txt";
log.Info($"Writing to {path}...");
using (var writer = output.Bind<TextWriter>(
new ApiHubFileAttribute(connectionStringSetting, path)))
{
writer.Write(input);
}
log.Info("Done writing...");
}
我包括Microsoft.Azure.WebJobs.Extensions.ApiHub
NuGet包爲ApiHubFileAttribute
。我得到了錯誤Exception binding parameter 'output'. Microsoft.Azure.WebJobs.Extensions.ApiHub: Unsupported type:Microsoft.Azure.WebJobs.IBinder
。任何幫助,將不勝感激。
當使用'IBinder'時,你不應該在你的'function.json'文件中爲該參數設置映射參數。這就是你遇到錯誤的原因。 – mathewc
不支持基於添加到根文件夾的子文件夾中的文件的文件觸發器,並且您需要在每個子文件夾上具有不同的函數/觸發器。 –