繁体   English   中英

.NET 二进制文件缺少 AWS Lambda

[英].NET Binaries Missing AWS Lambda

我已经通过 Visual Studio 将 .NET6 项目作为 zip 文件上传到 AWS Lambda --> 发布到 AWS Lambda 但是当我测试 lambda 时,我收到了这个错误:

Error: .NET binaries for Lambda function are not correctly installed in the /var/task directory of the image when the image was built. The /var/task directory is missing.

有没有人对为什么会发生这种情况有任何建议? 当您发布为 zip 时,AWS Lambda 不负责包含二进制文件吗?

谢谢

您是否以某种方式在 msbuild 参数上将该项目标记为独立的? 也许在 aws-lambda-tools-defaults.json 或在 serverless.tempate 中设置的自定义运行时? 它似乎正在您的应用程序路径中寻找 dotnet 运行时程序集

尝试在 AWS 控制台中检查 lambda 配置。

首先,检查代码色带中是否有任何线索。 如果您通过 VS 发布,应该有一些信息,例如The deployment package of your Lambda function is too large to enable inline code editingPackage size XX.Y MB 如果什么都没有(我认为会是这种情况),请检查您的发布设置。 lambda 运行时容器期望代码出现在/var/task中。 如果您以 zip 格式上传代码,它应该在 lambda 容器初始化期间最终位于此目录中。

此错误消息还可能表明使用了错误的运行时(例如,缺少 Amazon Linux 容器内的 dotnet 运行时)。 dotnet 运行时映像的结构可以通过映像源自的Dockerfile检查。

希望这有所帮助。

就我而言,我使用从 Lambda 的 -.zip 功能上传

在此处输入图像描述

我上传了一个 zip 文件中的项目,二进制文件在文件夹中。

在此处输入图像描述

这就产生了一个问题。 上传 .zip 文件时,请确保二进制文件位于主根目录中。 不在任何文件夹内。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM