我正在尝试在Azure中创建一个自定义.NET活动,它创建一个VM池和一个处理池节点上文件提取的作业。到目前为止,我有所有这些的代码,但我不知道如何将处理后的文件从节点下载回blob存储。我正在运行的excutable是带有dll的第三方exe,我无法访问代码。 这是我的代码:
ResourceExhaustedError
此代码为具有启动任务的所有节点创建池和作业。 exe,ddls和要处理的文件将传递给节点。
我的问题是:如何将已处理的文件输出到blob存储? 如果VM上没有足够的磁盘空间来存储它们并复制它们,我如何将它们流式传输到blob?
答案 0 :(得分:1)
您可以使用这种方式来保存任务输出:
https://docs.microsoft.com/en-us/azure/batch/batch-task-output-files
Azure Batch提供了多种持久化任务输出的方法。使用批处理服务API是一种最适合这些情况的便捷方法:
示例项目:
https://github.com/Azure/azure-batch-samples/tree/master/CSharp/ArticleProjects/PersistOutputs
示例代码:
<!-- language: lang-cs -->
OutputFiles = new List<OutputFile>
{
new OutputFile(
filePattern: @"..\std*.txt",
destination: new OutputFileDestination(new OutputFileBlobContainerDestination(
containerUrl: containerUrl,
path: taskId)),
uploadOptions: new OutputFileUploadOptions(
uploadCondition: OutputFileUploadCondition.TaskCompletion)),
new OutputFile(
filePattern: @"output.txt",
destination: new OutputFileDestination(new OutputFileBlobContainerDestination(
containerUrl: containerUrl,
path: taskId + @"\output.txt")),
uploadOptions: new OutputFileUploadOptions(
uploadCondition: OutputFileUploadCondition.TaskCompletion)),
}