nodejs 中的 Linux Azure Webjob 引用 node.exe

问题描述 投票:0回答:1

我尝试切换到预览在 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”,但没有成功。

https://techcommunity.microsoft.com/t5/apps-on-azure-blog/create-and-deploy-linux-webjobs-on-azure-app-service/ba-p/4218587

#!/bin/bash
node run.js

在 Nodejs 20 上正确堆叠 启用 SCM 基本身份验证 app service settings

值得注意的是,如果直接从应用程序服务中的 ssh 实例化,脚本运行良好(xxxxx.scm.azurewebsites.net/newui/webssh) ssh

尝试通过

进行部署
  1. ftp
  2. 压缩部署
  3. 直接通过 ssh/vi/etc 播放

run.js
(稍微简化一下;))

console.log("I'm alive");

script.sh

#!/bin/bash
/opt/node-wrapper/node run.js
node.js linux azure azure-webjobs
1个回答
0
投票

我创建了一个示例 Node.js WebJob 脚本,压缩脚本文件,并将其上传到 Azure WebJobs。

enter image description here

ERR ] 尝试使用工作目录“/home/site/wwwroot/App_Data/jobs/continuous/test3”启动进程“node.exe”时发生错误。没有这样的文件或目录

出现上述错误是因为 Web 作业中的命名约定。

  • 当您将文件命名为
    run.js
    时,WebJob 会将其视为入口点,并且可能会导致错误。
  • 当我使用文件名作为 run.js 时,我遇到了同样的错误,因此为了避免该错误,我将文件名
    run.js
    更改为任何其他名称,例如
    index.js
    server.js
  • 正如评论中提到的,如果您想使用文件名
    run.js
    ,那么您还应该将
    .sh
    文件名更改为
    run.sh
    以确保其正常工作。

我的脚本.sh

node run.js

我可以成功查看 Azure Web 作业日志,没有任何错误。 enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.