2016-12-05 49 views
6

由于亚马逊现在支持C#来构建AWS Lambda函数,因此我想尝试一下,但是在执行测试时遇到困难。无法从程序集中加载类型(C#亚马逊lambda函数)

这是我的简单的类:

using System; 
using System.IO; 
using System.Text; 

using Amazon.Lambda.Core; 
//using Amazon.Lambda.Serialization.Json; 

namespace MyTest 
{ 
    public static class LambdaFunction 
    { 
     public static string Handler(Stream stream) 
     { 
      return "Hello World"; 
     } 
    } 
} 

我使用.net核心运行时编译它。结果是带有程序集MyTest.dll文件和MyTest.deps.json文件的文件夹netstandard1.4。这些压缩为.zip压缩文件将上传到AWS Lambda控制台。

在配置选项卡中的处理程序定义为:

MyTest::LambdaFunction::Handler 

但是,当我击中测试按钮,这是返回错误消息:

{ 
    "errorType": "LambdaException", 
    "errorMessage": "Unable to load type 'LambdaFunction' from assembly 'MyTest, Culture=neutral, PublicKeyToken=null'." 
} 

注1:前我知道我需要要使用.Net Core而不是完整的CLR,我得到一个错误,说明程序集无法加载,所以我想现在程序集已经编译好了。注意2:我已经尝试了几个参数类型(Stream和String是唯一没有自定义序列化器支持的),但是Handler方法以及静态/实例类或方法或任何组合都无济于事。

任何谁得到了这个工作已经可以给我几个指针?

回答

11

那么,它的那些日子里,我想一个....

答案是,我忘了,包括命名空间8 |

应该是:

MyTest::MyTest.LambdaFunction::Handler 
+0

我有同样的问题,并添加命名空间不利于 –

+0

@RomanAsanov张贴问题,显示你的代码。必须有区别。 – dd4711