在Linux上使用Azure CLI上载WebJob失败(进程内存不足)

在Linux上使用Azure CLI上载WebJob失败(进程内存不足),azure,azure-webjobs,Azure,Azure Webjobs,我们正在尝试在linux上使用Azure CLI上载WebJob,作为我们持续部署管道的一部分 azure站点作业上载-v$WEB\u作业名称$WEB\u作业类型run.zip$WEB\u站点名称 但在等待“上载WebJob”步骤超过20分钟后,该命令失败 致命错误:调用和重试分配失败-进程内存不足 更多信息: cli已正确验证。我们可以很好地触发已有的WebJobs 完全相同的run.zip已成功从Windows上的Microsoft Azure Powershell上载 zip文件包含一个

我们正在尝试在linux上使用Azure CLI上载WebJob,作为我们持续部署管道的一部分

azure站点作业上载-v$WEB\u作业名称$WEB\u作业类型run.zip$WEB\u站点名称

但在等待“上载WebJob”步骤超过20分钟后,该命令失败

致命错误:调用和重试分配失败-进程内存不足

更多信息:

  • cli已正确验证。我们可以很好地触发已有的WebJobs
  • 完全相同的run.zip已成功从Windows上的Microsoft Azure Powershell上载
  • zip文件包含一个可运行的jar和一个小的.cmd脚本来启动它。文件大小:30 MB
  • 我们尝试设置详细标志,但它没有提供更多信息

它看起来像xplat cli中的一个bug。我认为这与linux无关,因为在Windows上运行xplat cli时,我也会遇到同样的错误,zip文件的大小也在30 MB左右。我建议在这里为他们发行一期

解决方法: 您可以使用cli获取站点凭据,然后使用
curl
上载webjob。这里有一个小脚本可以做到这一点

#从azure cli获取站点配置
siteConfig=`azure site show$WEB\u site\u NAME-d--json`
#提取站点的发布用户名和密码
publishingUserName=`echo$siteConfig | python-c“导入json,sys;obj=json.load(sys.stdin);打印obj['config']['publishingUserName'];”`
publishingPassword=`echo$siteConfig | python-c“导入json,sys;obj=json.load(sys.stdin);打印obj['config']['publishingPassword'];”`
siteScmUrl=`echo$siteConfig | python-c“导入json,sys;obj=json.load(sys.stdin);打印obj['site']['siteProperties']['properties']['RepositoryUri'];”`
#在服务器上构建webjob的路径
jobPath=“zip/site/wwwroot/App\u Data/jobs/$WEB\u JOB\u TYPE/$WEB\u JOB\u NAME”
fullUrl=$siteScmUrl$jobPath
#使用curl上传zip文件
curl-XPUT--data binary@run.zip-u$publishingUserName:$publishingPassword$fullUrl

您可以在此处阅读有关webjob REST API的更多信息

很好,我没有想到在Windows上尝试客户端,因为我在Windows上使用了Powershell CMDLT。我有一种感觉,这将是一个bug,所以我已经在github上发布了这个问题,但将用更多细节来填充。谢谢。稍微提醒一下:为了使curl命令起作用,我们需要向请求添加一些标题:-H'内容配置:附件;filename=“run.cmd”'其中filename是zip文件中可运行的文件。我假设您使用了
PUT/api/$WEB\u JOB\u TYPEwebjobs/$WEB\u JOB\u NAME
api,对吗?