我正在使用 Azure Batch .NET API。任务完成后,我尝试通过从任务中检索输出文件(或任何文件),CloudTask.GetNodeFile()
但这会引发“未找到”异常。stdout t.GetNodeFile(Microsoft.Azure.Batch.Constants.StandardOutFileName)
和stderr 相同t.GetNodeFile(Microsoft.Azure.Batch.Constants.StandardErrorFileName)
。节点上根本没有任何类型的文件(通过 Azure 门户验证)。当我进行检查并且节点处于“空闲”状态时,作业和池尚未删除。
这是一段相关的代码,请注意,这基本上是来自github 上的官方 azure-batch-samples的示例之一:
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"
}