我使用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。
非常感谢您的帮助。
编辑:
接受的答案显然是正确的。我没有更新我的环境变量引用来反映我所做的池中的更改。
答案 0 :(得分:3)
您为池或任务指定的软件包将下载并提取到节点AZ_BATCH_ROOT_DIR
内的命名目录中。批处理还会创建一个环境变量,其中包含指向指定目录的路径。当您在节点上引用应用程序时,您的任务命令行将使用此环境变量。
在Windows节点上,变量的格式如下:
Windows:AZ_BATCH_APP_PACKAGE_APPLICATIONID#version
在Linux节点上,格式略有不同。在环境变量中,句点(。),连字符(-)和数字符号(#)变平为下划线。另外,请注意,将保留应用程序ID的大小写。例如:
Linux:AZ_BATCH_APP_PACKAGE_applicationid_version
进一步添加:
内部机制和Dir结构取决于操作系统类型和IMO(在我看来)不建议依赖于硬编码位置,因此访问这些功能的机制是通过env vars
,即env vars
可能发生的任何潜在变化都将指向正确目录的来源。
如果敏锐:几个月前已经进行了升级,并且功能公告位于此处:https://github.com/Azure/Batch/issues/1
希望这能涵盖情况并有所帮助!