我正在从将多个虚拟机的应用实例托管到Azure中的多个WebApp。我还有一个批处理工具,我在计划的不同时间运行以执行不同的工作。它所做的特定工作由命令行参数控制,使用Windows任务计划很容易做到。
在运行WebJob时似乎没有办法指定参数,但我确实找到了以下SO文章建议使用包含参数的Powershell脚本:
Command Line Arguments to Azure Webjobs
可以解决我的问题的优秀解决方案。但是,当上传包含我的应用程序,相关dll和PowerShell文件作为WebJob的zip时,似乎没有办法指定我想将powershell文件用作WebJob,而是使用exe代替
答案 0 :(得分:8)
WebJobs使用以下逻辑来决定在作业目录中运行脚本的文件:
对于每个文件类型,我们首先查找名为的文件:run。{file type extension}(例如run.cmd或run.exe。 如果所有文件类型都不存在,我们将查找具有支持的文件类型扩展名的第一个文件。 使用的文件类型扩展名的顺序是:.cmd,.bat,.exe,.ps1,.sh,.php,.py,.js。
作业目录中的推荐脚本文件是:run.cmd。
注意:我们只会在该作业的根目录下查找脚本(不在其子目录下)。
注意:确保.bat / .cmd文件不包含UTF-8 BOM(默认情况下由某些编辑器插入,如Visual Studio),这可能会破坏内容!
答案 1 :(得分:7)
在您的案例run.{extension}
中将正在运行的脚本命名为run.ps1
。
有关如何选择脚本的更全面描述,请阅读https://github.com/projectkudu/kudu/wiki/Web-jobs