enter image description here在C#中部署lambda时出现错误 - “errorType”:“LambdaException”,“errorMessage”:“无法找到文件名为'/ var / task /的指定处理程序程序集AWSLambda1.dll'或'/var/task/AWSLambda1.ni.dll'。程序集应位于您上传的.zip文件的根目录中。“ 作为初学者可以任何人为我提供在C#中执行lambda的步骤吗?
答案 0 :(得分:0)
我正在使用Serverless Framework来运行Lambda函数。我可以调用该函数,但是当我尝试通过API网关调用它时它没有工作。尝试了几天之后我就这样解决了:
Handler.cs:
using System;
using Amazon.Lambda.Core;
using Amazon.Lambda.Serialization.Json;
using Amazon.Lambda.APIGatewayEvents;
[assembly:LambdaSerializer(typeof(Amazon.Lambda.Serialization.Json.JsonSerializer))]
namespace AwsDotnetCsharp {
public class Handler {
public APIGatewayProxyResponse Hello(APIGatewayProxyRequest request) {
return new APIGatewayProxyResponse() {
StatusCode = 200,
Body = "Go Serverless v1.0! Your function executed successfully!",
};
}
}
}
serverless.yml:
service: csharpExample
provider:
name: aws
runtime: dotnetcore1.0
package:
artifact: bin/release/netcoreapp1.0/deploy-package.zip
functions:
hello:
handler: CsharpHandlers::AwsDotnetCsharp.Handler::Hello
events:
- http:
path: hello
method: GET
cors: true
我不确定这是不是你要求的,但由于我在这个问题上花了很多时间,我想分享给遇到同样问题的人。 。
答案 1 :(得分:0)
重命名项目并尝试发布到AWS时遇到了此错误。
您可以通过更改“程序集名称”以匹配项目/生成的程序集的名称,在功能上载屏幕中解决此问题。
由于已选择了“保存设置以备将来部署”选项,因此这些设置将保存到aws-lambda-tools-defaults.json中,因此您可以在以下位置搜索缺少的文件名(在这种情况下为“ AWSLambda1”):您的整个解决方案,请查看上面提到的json文件中是否存在它,然后更改它以匹配您的程序集名称。
答案 2 :(得分:0)
聚会迟到了,但让我把我的解决方案放在这里,以节省其他人的时间。 我也遇到了这种类型的错误,并通过将 AWS Lambda 函数处理程序名称与代码/zip 文件中处理程序函数的程序集名称进行匹配来修复该错误。 可以在代码选项卡的运行时设置下找到 AWS Lambda 处理程序。