Azure批处理应用程序包未被复制到任务的工作目录

时间:2018-01-18 14:45:56

标签: azure-batch

我已经使用Linux机器创建了Azure批处理池,并为池指定了应用程序包。

我的命令行是

command='python $AZ_BATCH_APP_PACKAGE_scriptv1_1/tasks/XXX/get_XXXXX_data.py',
python3: can't open file '$AZ_BATCH_APP_PACKAGE_scriptv1_1/tasks/XXX/get_XXXXX_data.py': 
[Errno 2] No such file or directory

当我连接到节点并查看工作目录时,不存在应用程序包文件。

如何确保Application Package中的文件在工作目录中可用,或者我可以从命令行调用/执行Application Package下的文件?

2 个答案:

答案 0 :(得分:1)

在开始在代码中使用软件包之前,请确保您的异步操作具有正确的await

另外请分享您的设计\伪代码场景以及如何将其作为设计进行处理?

进一步补充:

似乎这是一个池级包。

  • 错误似乎是应用程序env变量未正确使用或存在其他一些用户级别问题。请在下面查看linmk,特别是提到使用env变量的部分。

这看起来像是用户级别的问题,因为在下载软件包资源的情况下,如果有错误,您将通过异常处理程序或在工具级别看到您正在使用批处理资源管理器\ Batch-labs或代码级别异常处理。

原因\理由:

我曾经创建了一个小样本来帮助窥视,所以这个资源可以帮助你解决使用问题here

希望休息有所帮助。

答案 1 :(得分:0)

在Linux上,带有版本字符串的应用程序包格式为:

AZ_BATCH_APP_PACKAGE_APPLICATIONID#version

在Windows上,格式为:

$AZ_BATCH_APP_PACKAGE_scriptv1_1

其中0是应用程序名称,1是版本。

tasks/XXX/get_XXXXX_data.py会将您带到解压缩应用程序的根文件夹。

该位置是否存在“确切”路径?

env

您可以在此处查看更多信息:

https://docs.microsoft.com/en-us/azure/batch/batch-application-packages

编辑刚刚看到这个问题:“或者我可以从命令行调用/执行Application Package下的文件”

是的,您可以使用上面的环境变量从应用程序包目录调用和执行文件。

如果在节点上键入select min(CustomerID) from (SELECT distinct CustomerID FROM Customers order by CustomerID desc LIMIT 4) as A; ,您将看到已设置的环境变量。