我正在尝试在AWS Lambda中运行一个dotnet core 1.0控制台应用程序。这只是我出于兴趣而做的事情,但是我遇到了一些问题。
我的dotnet core应用程序如下所示:
我在Ubuntu 14.04上使用以下方法编译了dotnet应用程序:
这让我得到了一个本地应用程序,可以在Linux上运行。这一切都有效!
我通过上传一个包含我的dotnet core 1.0应用程序和nodejs文件index.js的zip文件来创建了一个Lambda函数。当我测试Lambda函数时,出现了以下错误:
我尝试了很多不同的方法,但是卡住了。我认为可能是因为在Ubuntu上构建了dotnet应用程序而不是Amazon Linux,但我真的不确定...有人可以帮帮我吗?
谢谢。
我的dotnet core应用程序如下所示:
using System;
namespace ConsoleApplication
{
public class Program
{
public static int Main(string[] args)
{
Console.WriteLine("Hello from dotnet!");
return 0;
}
}
}
我在Ubuntu 14.04上使用以下方法编译了dotnet应用程序:
dotnet build --native --output out --framework dnxcore50
这让我得到了一个本地应用程序,可以在Linux上运行。这一切都有效!
从这里开始,我想看看是否可以在AWS Lambda中运行此应用程序。由于Lambda不支持dotnet,我找到了一些Node.js来执行我的dotnet应用程序:
var exec = require('child_process').exec;
exports.handler = function(event, context) {
console.log('Hello from nodejs!');
child = exec("./hwapp", function(error) {
context.done(error, 'done');
});
child.stdout.on('data', console.log);
child.stderr.on('data', console.error);
};
我通过上传一个包含我的dotnet core 1.0应用程序和nodejs文件index.js的zip文件来创建了一个Lambda函数。当我测试Lambda函数时,出现了以下错误:
{
"errorMessage": "Command failed: /bin/sh -c ./hwapp\n",
"errorType": "Error",
"stackTrace": [
"",
"ChildProcess.exithandler (child_process.js:213:12)",
"emitTwo (events.js:87:13)",
"ChildProcess.emit (events.js:172:7)",
"maybeClose (internal/child_process.js:821:16)",
"Process.ChildProcess._handle.onexit (internal/child_process.js:211:5)"
]
}
我尝试了很多不同的方法,但是卡住了。我认为可能是因为在Ubuntu上构建了dotnet应用程序而不是Amazon Linux,但我真的不确定...有人可以帮帮我吗?
谢谢。