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

时间:2015-10-05 06:39:30

标签: azure azure-webjobs

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

  

azure site job upload -v $ WEB_JOB_NAME $ WEB_JOB_TYPE run.zip $ WEB_SITE_NAME

但命令在>之后失败20分钟等待“上传WebJob”步骤。

  

致命错误:CALL_AND_RETRY_2分配失败 - 处理内存不足

更多信息:

  • cli经过适当的身份验证。我们可以触发已经存在的WebJobs。
  • 完全相同的run.zip从Windows上的Microsoft Azure Powershell成功上传。
  • zip文件包含一个可运行的jar,以及一个用于启动它的小.cmd脚本。文件大小:30 MB
  • 我们尝试设置verbose-flag,但它不再提供任何信息。

1 个答案:

答案 0 :(得分:1)

它看起来像是xplat-cli中的一个bug。我不认为它与linux有关,因为当我在Windows上运行xplat-cli时,我得到了同样的错误,其zip文件也大约为30 MB。我建议在https://github.com/Azure/azure-xplat-cli/issues

为他们打开一个问题

解决方法:

您可以使用cli获取网站信用,然后使用curl上传网络工作。这是一个可以做到这一点的小脚本。

# get site config from azure cli
siteConfig=`azure site show $WEB_SITE_NAME -d --json`

# extract publishing username and password for the site
publishingUserName=`echo $siteConfig| python -c "import json,sys;obj=json.load(sys.stdin);print obj['config']['publishingUserName'];"`
publishingPassword=`echo $siteConfig| python -c "import json,sys;obj=json.load(sys.stdin);print obj['config']['publishingPassword'];"`
siteScmUrl=`echo $siteConfig | python -c "import json,sys;obj=json.load(sys.stdin);print obj['site']['siteProperties']['properties']['RepositoryUri'];"`

# build the path for the webjob on the server
jobPath="zip/site/wwwroot/App_Data/jobs/$WEB_JOB_TYPE/$WEB_JOB_NAME"
fullUrl=$siteScmUrl$jobPath

# Upload the zip file using curl
curl -XPUT --data-binary @run.zip -u $publishingUserName:$publishingPassword  $fullUrl

您可以在此处阅读有关webjob REST API的更多信息https://github.com/projectkudu/kudu/wiki/WebJobs-API