Azure Batch 节点不一致的文件夹结构

Azure Batch Node Inconsistent Folder Structure

我使用 AzureBatch 池已经有一段时间了,部署了应用程序包,并且能够 modify/update 通过 Azure 毫无问题地使用它们几个月。

我尝试创建一个新的池,其配置与我当前的池完全相同,但有一个单独的应用程序包。

我的问题是两个池之间的文件夹结构几乎完全不同,我不知道该怎么办。

原始池到我需要的 exe 的路径如下所示: C:\user\tasks\applications\wd\'packagename'\'version'\'nodetimestamp'\'PACKAGENAME'

但在这个新池中,结构如下所示:

C:\user\tasks\apppackages\'packagenameNodetimestamp'\'PACKAGENAME'

我看不出这些池的创建方式有何不同,我曾多次尝试重新创建这个新池,但结果都是一样的。创建池后,并非所有创建池的选项都可以从 Azure 门户中查看,但我很确定它只是一个云服务池,windows server 2012 R2 for both.

任何帮助将不胜感激,感谢您抽出宝贵时间。

编辑:

接受的答案显然是正确的。我没有更新我的环境变量引用以反映我所做的池更改。

您为池或任务指定的包将下载并提取到节点 AZ_BATCH_ROOT_DIR 内的命名目录中。 Batch 还会创建一个环境变量,其中包含指定目录的路径。您的任务命令行在引用节点上的应用程序时使用此环境变量。

在Windows个节点上,变量格式如下:

Windows: AZ_BATCH_APP_PACKAGE_APPLICATIONID#version

在Linux个节点上,格式略有不同。句点 (.)、连字符 (-) 和数字符号 (#) 在环境变量中被扁平化为下划线。另请注意,应用程序 ID 的大小写会保留。例如:

Linux: AZ_BATCH_APP_PACKAGE_applicationid_version

参考:https://docs.microsoft.com/en-us/azure/batch/batch-application-packages#execute-the-installed-applications

进一步补充

内部机制和 Dir 结构依赖于 OS 类型和 IMO(在我看来)不建议依赖硬编码位置,因此访问这些功能的机制是通过env vars,即无论发生什么潜在的变化,env vars 都将指向正确目录的来源。

如果热衷于:几个月前进行了升级,功能通知位于此处:https://github.com/Azure/Batch/issues/1

希望这涵盖了场景并有所帮助!