将Azure批量任务输出持久保存到Azure存储

问题描述:

假设我在Azure批量虚拟机池中有一堆类似的任务并行运行。这些任务连接到SQL数据库并使用sqlcmd为单个表提取数据。然后通过将其输出到7zip.exe来压缩表格输出。因此,命令行类似于(介意那些“”)将Azure批量任务输出持久保存到Azure存储

cmd/c sqlcmd -i。\ table.sql -S。 -E -s“,”-I -h -1 -W |“ “c:\ Program Files \ 7-Zip \ 7z.exe”a -tbzip2 -si“out.csv.bz2”

这里的问题是,通常数据以out.csv的形式保存到每个虚拟机本地存储。 bz2文件。但是,在Azure批处理任务完成后,从池分配的虚拟机将不再运行。因此,我需要一种机制将所有这些out.csv.bz2文件收集到Azure存储帐户(例如Azure Blob存储或Data Lake存储)。我似乎没有发现Azure Batch中的机制将命令行任务直接重定向/持久化输出而不是本地VM存储到Azure存储。

有谁知道如何做到这一点?

如果您位于VirtualMachineConfiguration池中,则可以使用OutputFile上传到Azure存储Blob。此功能在CloudServiceConfiguration池中尚不可用。

对于CloudServiceConfiguration池,请参阅this related question