我已经使用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下的文件?
答案 0 :(得分:1)
在开始在代码中使用软件包之前,请确保您的异步操作具有正确的await
。
另外请分享您的设计\伪代码场景以及如何将其作为设计进行处理?
进一步补充:
似乎这是一个池级包。
这看起来像是用户级别的问题,因为在下载软件包资源的情况下,如果有错误,您将通过异常处理程序或在工具级别看到您正在使用批处理资源管理器\ Batch-labs或代码级别异常处理。
原因\理由:
如果池级别或任务应用程序有错误,如果应用程序包中出现错误,则会返回错误列表,然后它将作为UserError or and AppPackageError
返回,该错误列表将在代码的异常句柄。
密钥您可以随时RDP到您的节点并查看软件包可用性:此处的信息:https://docs.microsoft.com/en-us/azure/batch/batch-api-basics#connecting-to-compute-nodes
我曾经创建了一个小样本来帮助窥视,所以这个资源可以帮助你解决使用问题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;
,您将看到已设置的环境变量。