将 Go 项目部署到 AWS Lambda 时出现“PathError”

MSD*_*MSD 0 go amazon-web-services aws-lambda

在部署这个基于 Go 的 AWS Lambda 项目时,通过 AWS 控制台,我收到:

{
  "errorMessage": "fork/exec /var/task/main: exec format error",
  "errorType": "PathError"
}
Run Code Online (Sandbox Code Playgroud)

以下是我采取的步骤:

  • marriage-master从 Git下载项目
  • 在终端中,go get "github.com/aws/aws-lambda-go/lambda" 所以脚本可以由 Go 构建
  • 在终端中,go build main.go创建 Lambda 将用于执行的文件
  • 在终端中,zip main.zip main将文件存档为.zip 以部署到 Lambda
  • 在 AWS 控制台中,上传main.zipFunction code

在此处输入图片说明

  • 在 AWS 控制台中,更改Handlermain.

在此处输入图片说明

但我不断收到此路径错误。知道我做错了什么吗?

小智 7

尝试不带标志:

GOARCH=amd64 GOOS=linux go build main.go
Run Code Online (Sandbox Code Playgroud)


May*_*tel 5

要在 AWS Lambda 中部署 Go 应用程序,请运行以下命令:

  1. 构建针对 Linux 操作系统和 amd64 架构的二进制文件

    GOARCH=amd64 GOOS=linux go build main.go -ldflags="-s -w"

  2. 压缩二进制文件

    zip lambda.zip main

  3. 直接从 AWS Lambda 控制台上传此二进制文件或将其放入 S3 存储桶并导入。

您已经处理了 lambda 配置。