我尝试切换到预览在 Linux 上运行的 Azure 应用服务 Webjobs 以实现 Nodejs 连续 Webjob,但没有成功。 (我在 Windows 上运行的 AppService Webjobs 上的 Nodejs/C# 方面拥有深厚的成功经验)。
一开始是有希望的,但由于不清楚的原因,错误消息指的是
node.exe
[09/24/2024 19:24:02 > 6843e9: SYS INFO] WebJob singleton lock is acquired
[09/24/2024 19:24:02 > 6843e9: SYS INFO] Run script 'run.js' with script host - 'NodeScriptHost'
[09/24/2024 19:24:02 > 6843e9: SYS INFO] Status changed to Running
[09/24/2024 19:24:02 > 6843e9: ERR ] An error occurred trying to start process 'node.exe' with working directory '/home/site/wwwroot/App_Data/jobs/continuous/test3'. No such file or directory
[09/24/2024 19:24:02 > 6843e9: SYS ERR ] System.AggregateException: One or more errors occurred. (An error occurred trying to start process 'node.exe' with working directory '/home/site/wwwroot/App_Data/jobs/continuous/test3'. No such file or directory)
---> System.ComponentModel.Win32Exception (2): An error occurred trying to start process 'node.exe' with working directory '/home/site/wwwroot/App_Data/jobs/continuous/test3'. No such file or directory
at System.Diagnostics.Process.ForkAndExecProcess(ProcessStartInfo startInfo, String resolvedFilename, String[] argv, String[] envp, String cwd, Boolean setCredentials, UInt32 userId, UInt32 groupId, UInt32[] groups, Int32& stdinFd, Int32& stdoutFd, Int32& stderrFd, Boolean usesTerminal, Boolean throwOnNoExec)
at System.Diagnostics.Process.StartCore(ProcessStartInfo startInfo)
尝试使用受此网站启发的额外“script.sh”,但没有成功。
#!/bin/bash
node run.js
在 Nodejs 20 上正确堆叠 启用 SCM 基本身份验证
值得注意的是,如果直接从应用程序服务中的 ssh 实例化,脚本运行良好(xxxxx.scm.azurewebsites.net/newui/webssh)
尝试通过
进行部署run.js
(稍微简化一下;))
console.log("I'm alive");
script.sh
#!/bin/bash
/opt/node-wrapper/node run.js
我创建了一个示例 Node.js WebJob 脚本,压缩脚本文件,并将其上传到 Azure WebJobs。
ERR ] 尝试使用工作目录“/home/site/wwwroot/App_Data/jobs/continuous/test3”启动进程“node.exe”时发生错误。没有这样的文件或目录
出现上述错误是因为 Web 作业中的命名约定。
run.js
时,WebJob 会将其视为入口点,并且可能会导致错误。run.js
更改为任何其他名称,例如 index.js
或 server.js
。run.js
,那么您还应该将.sh
文件名更改为run.sh
以确保其正常工作。我的脚本.sh:
node run.js
我可以成功查看 Azure Web 作业日志,没有任何错误。