Jenkins dotnet lambda deploy-serverless 无法执行,因为找不到指定的命令或文件

cod*_*pen 3 jenkins aws-lambda asp.net-core

我是 CI/CD 的新手,并尝试通过 Jenkins 部署一个简单的无服务器功能并出现错误。

这是我的步骤

  1. 使用 dotnet new serverless.AspNetCoreWebAPI 创建一个新项目
  2. 配置了此项目所在的 Git 源 {GitHub}。
  3. 在构建步骤中添加了以下几行

    `export PATH=$PATH:/usr/local/share/dotnet:/usr/local/bin

    dotnet lambda 部署无服务器`

运行上述命令后,我收到错误

/usr/local/share/dotnet/dotnet lambda deploy-serverless 无法执行,因为找不到指定的命令或文件。可能的原因包括:
您拼错了内置的 dotnet 命令。
您打算执行 .NET Core 程序,但 dotnet-lambda 不存在。
您打算运行一个全局工具,但在 PATH 中找不到具有此名称的带有 dotnet 前缀的可执行文件。
构建步骤“执行 shell”将构建标记为失败完成:失败

不用说,如果使用终端窗口,我可以成功运行 dotnet lambda deploy-serverless。

知道这里有什么问题吗?

小智 5

在 CMD 中首先安装下面的命令

dotnet 工具安装 -g Amazon.Lambda.Tools

然后你可以在 cmd 中找到 dotnet 命令。


cod*_*pen 3

终于解决了问题。

比较了 .csproj 文件,其中一个是成功部署 lambda 的文件,另一个是失败的文件。注意到以下几行是不同的。当我在项目文件中添加以下内容后,它就立即起作用了。

<ItemGroup><DotNetCliToolReference Include="Amazon.Lambda.Tools" Version="2.2.0" /></ItemGroup>
Run Code Online (Sandbox Code Playgroud)

了解为什么 dotnet lambda deploy-serverless 在没有上述行的情况下从终端窗口为同一个项目工作,而不是从 jenkins 工作内部工作,这仍然很有趣。