我正在使用新的Azure WebJobs功能,并且当一个新文件进入blob时会有一个简单的触发器:
public static void ProcessImportFile([BlobInput("importjobsdata/{name}")] TextReader input,
[BlobOutput("importjobslog/log_{name}")] TextWriter writer)
{
writer.WriteLine("Starting import file process...");
var result = InputData(input, writer);
var status = result == 0 ? "SUCCESS" : "FAIL";
var message = result == 0
? "Import success."
: "Import fail. " + result + " records failed to import. Check logs for details.";
writer.WriteLine(message);
}
我想要做的是获取上传文件的名称(即数据注释中的{name}属性),以便我可以将该信息写入编写器(日志)进行诊断目的。
但是,我似乎无法找到TextReader / BlobInput的任何属性来提供这些信息。
我做了一点挖掘,看起来TextReader的BaseStream属性是一个Microsoft.WindowsAzure.Jobs.WatchableStream对象。我不确定这是否有助于追踪名称。
如何获得它?
答案 0 :(得分:6)
name
捕获的值也将传递给具有该名称的参数。所以你应该能够做到这一点:
public static void ProcessImportFile([BlobInput("importjobsdata/{name}")] TextReader input,
string name,
[BlobOutput("importjobslog/log_{name}")] TextWriter writer)
{
writer.WriteLine(name);
}