Azure批处理节点文件夹结构不一致

时间:2018-11-05 21:17:56

标签: azure azure-devops azure-batch

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

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

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

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

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

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

我看不到这些池的创建方式有什么不同,我尝试过几次重新创建这个新池,但是结果都是一样的。创建池后,并不是所有创建池的选项都可以在Azure Portal上看到,但是我很确定它只是一个cloudservices池,两者都是Windows Server 2012 R2。

非常感谢您的帮助。

编辑:

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

1 个答案:

答案 0 :(得分:3)

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

在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结构取决于操作系统类型和IMO(在我看来)不建议依赖于硬编码位置,因此访问这些功能的机制是通过env vars,即env vars可能发生的任何潜在变化都将指向正确目录的来源。

如果敏锐:几个月前已经进行了升级,并且功能公告位于此处:https://github.com/Azure/Batch/issues/1

希望这能涵盖情况并有所帮助!