我希望能够在运行任务之前解压缩输入文件,以减少批处理过程中的数据传输。为此,我在JobPreparationTask中添加了以下命令行:
CommandLine =“ / bin / bash -c'DEBIAN_FRONTEND =非交互式apt-get install -y解压缩;解压缩$ AZ_BATCH_TASK_WORKING_DIR // myInput.zip'”
但是,没有查看我的文件( job / task / wd / myInput.zip )所在的任务工作目录,而是查看了工作准备文件夹,但出现以下错误:< / p>
“无法找到或打开/mnt/batch/tasks/workitems/myJob/job-1/jobpreparation/wd//myInput.zip”
我尝试使用其他环境路径,但总是会遇到类似的错误。 如何访问作业/任务/ WD解压缩文件?
答案 0 :(得分:2)
我认为您使用的env var是错误的,下面是一些建议以及对您当前方式的回答:
resourceFiles
的一部分?但是在什么情况下?resource
个文件:https://docs.microsoft.com/en-us/azure/batch/resource-files 尤其是它说:All types of tasks support resource files: tasks, start tasks, job preparation tasks, job release tasks, etc
的那部分,那么在什么情况下您的资源文件在什么时候上载?
如果在JobPrep
上载,并且当前任务引用了JobPrep
,则可能可以解释此行为。
cmdline
应该是这些任务的一部分,并且env var应该在当前上下文中使用。否则:请确保zip
是jobPrep
的resroucefiles的一部分,并相应地使用环境变量。
关于env var
,为什么不使用:AZ_BATCH_JOB_PREP_WORKING_DIR
或AZ_BATCH_JOB_PREP_DIR
?
请参阅此处:https://docs.microsoft.com/en-us/azure/batch/batch-compute-node-environment-variables#environment-variables,它将允许您访问作业准备目录级别。
额外
想法共享只是为了让您意识到并牢记,只有在满足您的需要时才使用。 (仅当您已阅读本文并且确实符合您的设计方案时才使用它,否则请忽略,以上内容可以解决您的问题):)
应用程序包是包含该应用程序的.zip文件 运行任务所需的二进制文件和支持文件 应用程序。每个应用程序包代表一个特定的 该应用程序的版本。
您可以在池和任务级别指定应用程序包。
希望这符合您的需求。 :)谢谢