我正在使用Azure Batch .NET API。任务完成后,我尝试通过CloudTask.GetNodeFile()
从任务中检索输出文件(或任何文件),但这会引发“未找到”异常。对于标准输出 t.GetNodeFile(Microsoft.Azure.Batch.Constants.StandardOutFileName)
和 stderr t.GetNodeFile(Microsoft.Azure.Batch.Constants.StandardErrorFileName)
也是如此。节点上没有任何类型的文件(通过Azure门户验证)。当我执行检查并且节点处于“空闲”状态时,作业和池尚未删除。
以下是相关的代码片段,请注意,这基本上是official azure-batch-samples at github中的一个示例:
IPagedEnumerable<CloudTask> ourTasks = job.ListTasks(new ODATADetailLevel(selectClause: "id,state,url"));
client.Utilities.CreateTaskStateMonitor().WaitAll(ourTasks, TaskState.Completed, TimeSpan.FromMinutes(config.TimeoutMinutes));
Console.WriteLine("Tasks are done.");
foreach (CloudTask t in ourTasks)
{
t.ListNodeFiles(recursive: true).ToList(); // always of size 1, with only element being "/wd"
}