使用C# Console.Write*与AWS Lambda

3
我感觉自己很蠢,因为要问这样一个基础问题...我第一次尝试使用C#中的AWS Lambda,根据文档所述:

任何使用Console.Write或类似方法写入标准输出或标准错误流的内容都将记录在CloudWatch日志中。

好吧,在执行时我收到了以下运行时异常:

Unable to load DLL 'api-ms-win-core-processenvironment-l1-1-0.dll': The specified module could not be found.
(Exception from HRESULT: 0x8007007E): DllNotFoundException
at Interop.mincore.GetStdHandle(Int32 nStdHandle)
at System.ConsolePal.GetStandardFile(Int32 handleType, FileAccess access)
at System.Console.<>c.<get_Out>b__25_0()
at System.Console.EnsureInitialized[T](T& field, Func`1 initializer)
at System.Console.WriteLine(String value)

我的问题是,在哪里/如何添加它所要求的引用?答案似乎不太明显。


关于使用 Console.WriteLine() 的一件事需要注意的是它很慢,有时候消息会在 CloudWatch 中出现顺序错乱(例如,REPORT 行将在您的最后一个日志行之前出现)。只是提供信息。 - Lee
2个回答

3
作为替代Console.Write或Console.WriteLine的方法,您可以使用静态Amazon.Lambda.Core.LambdaLogger类上的Log方法。
private void DoSomething() {
    LambdaLogger.Log("Log message");
}

这里可以找到更多相关信息:http://docs.aws.amazon.com/lambda/latest/dg/dotnet-logging.html

该链接提供了与.NET日志记录有关的信息。

0

好吧,事实证明在 project.json 文件的 dependencies 节点下,向导的无服务器模板引用了 Microsoft.NETCore.App,但没有指定“平台”类型。我在网上发现了其他示例,其中包含了 type 行,一旦我添加了它,一切都开始正常工作了!

    "Microsoft.NETCore.App": {
        "type": "platform",
        "version": "1.1.0"
    }, 

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接