构建AWS Lambda函数时提示KinesisEvents包未找到该如何解决?
问题原因
- 你安装的
AWSSDK.Kinesis是AWS Kinesis服务的基础SDK包,仅包含调用Kinesis OpenAPI的相关类型,不包含Lambda Kinesis触发器的事件定义类。Amazon.Lambda.KinesisEvents是独立的Lambda事件类型包,需要单独安装。 - 你使用的运行环境是.NET Core 2.1,若直接安装最新版的
Amazon.Lambda.KinesisEvents,最新版已经不再支持.NET Core 2.1运行时,也会出现命名空间找不到的报错。 - 额外提醒:你贴出的代码中
FunctionHandler方法声明返回值为string,但方法内没有任何return语句,修复依赖后也会触发编译错误,需要同步修改。
解决步骤
- 安装对应版本的
Amazon.Lambda.KinesisEvents包,.NET Core 2.1环境建议安装2.2.0版本,可通过dotnet CLI执行命令:dotnet add package Amazon.Lambda.KinesisEvents --version 2.2.0 - 修复
FunctionHandler的返回值问题,要么将返回值修改为void,要么在方法末尾添加return语句,示例:
public string FunctionHandler(KinesisEvent kinesisEvent, ILambdaContext context) { context.Logger.LogLine($"Beginning to process {kinesisEvent.Records.Count} records..."); foreach (var record in kinesisEvent.Records) { string recordData = GetRecordContents(record.Kinesis); context.Logger.LogLine($"Record Data:"); context.Logger.LogLine(recordData); } context.Logger.LogLine("Stream processing complete."); return "Processing finished"; }
- 重新构建项目,确认没有CS0234报错即可。
内容的提问来源于stack exchange,提问作者loremIpsum1771
相关产品推荐
相关产品推荐

