Azure Batch - ResourceFiles PreparationTask

Azure Batch - ResourceFiles PreparationTask

我正在尝试使用 PreparationTask 获取我的 ResourceFiles 以用作输入数据。

我的准备任务是这样的:

myJob.JobPreparationTask = new JobPreparationTask { CommandLine = jobPrepCmdLine };

如何使用 PreparationTask 配置我的作业以从我的 AutoStorageContainer 下载 ResourceFiles 到池 VM?

我试过了:

var inputFiles = new List<ResourceFile> { };
var file = ResourceFile.FromAutoStorageContainer("fgrp-jill2");  
inputFiles.Add(file); 

myJob.JobPreparationTask.ResourceFiles = inputFiles;

但是出现空对象错误,即使 inputFiles.Add 显示至少识别了 1 个文件。

在这种情况下,您应该将 Storage SDK 与 Batch 结合使用。您可以以此为例:https://docs.microsoft.com/en-us/azure/batch/quick-run-dotnet#preliminaries

作业准备任务的功能与常规启动任务非常相似,因为它在任务执行之前运行。在 link 的示例中,您会看到我们引用了 Blob 客户端、容器名称和文件路径。我将在此处粘贴示例:

List<string> inputFilePaths = new List<string>
{
    "taskdata0.txt",
    "taskdata1.txt",
    "taskdata2.txt"
};

List<ResourceFile> inputFiles = new List<ResourceFile>();

foreach (string filePath in inputFilePaths)
{
    inputFiles.Add(UploadFileToContainer(blobClient, inputContainerName, filePath));
}