我有一个遗留exe,它接受本地机器文件路径,处理它并再次在本地路径中生成输出文件。可以在Azure Webjob上运行吗?
我正在考虑编写一个从blob存储下载文件的包装器exe - >将其存储在本地文件系统中 - >使用本地文件路径调用legacy exe - >获取输出并再次将其上传到blob。
这种方法是否有效或存在局限性?
答案 0 :(得分:4)
如果您最终编写了一个包装器,那么WebJobs SDK的Files绑定扩展可能会让您感兴趣:https://github.com/Azure/azure-webjobs-sdk-extensions。例如:
// When new files arrive in the "import" directory, they
// are uploaded to a blob container then deleted.
public static void ImportFile(
[FileTrigger(@"import\{name}", "*.dat", autoDelete: true)] Stream file,
[Blob(@"processed/{name}")] CloudBlockBlob output,
string name,
TextWriter log)
{
output.UploadFromStream(file);
file.Close();
log.WriteLine(string.Format("Processed input file '{0}'!", name));
}
答案 1 :(得分:3)
这样的exe应该运行正常,只要你将文件夹传递给/从中写入。在进入WebJobs之前,我建议使用Kudu Console在Web应用程序中手动测试它,以确保它运行良好。
然后,如果你的目标是让它与blob输入/输出一起工作,那么包装exe应该可以工作。显然,让它直接与博客流一起使用会更清晰,但如果遗留的exe是给定的并且无法更改,那么包装器方法应该没问题。