AWS Lambda GO路径错误(Windows 10)

AWS Lambda GO路径错误(Windows 10),go,aws-lambda,aws-lambda-go,Go,Aws Lambda,Aws Lambda Go,我在VSCode中的PowerShell中执行了以下操作: PS D:\Project Resume> set GOOS=linux PS D:\Project Resume> set GOARCH=amd64 PS D:\Project Resume> set CGO_ENABLED=0 PS D:\Project Resume> cd .\dist\events\ PS D:\Project Resume\dist\events> go build -o mai

我在VSCode中的PowerShell中执行了以下操作:

PS D:\Project Resume> set GOOS=linux
PS D:\Project Resume> set GOARCH=amd64
PS D:\Project Resume> set CGO_ENABLED=0
PS D:\Project Resume> cd .\dist\events\
PS D:\Project Resume\dist\events> go build -o main main.go
PS D:\Project Resume\dist\events> ~\Go\Bin\build-lambda-zip.exe -o main.zip main
2020/11/14 14:05:13 wrote main.zip
这似乎可以很好地压缩文件,我在Lambda控制台中将处理程序也更改为“main”。然而,我还是得到了这样的结论:

START RequestId: 42d5f7d6-3c9d-457d-ab2f-5030b39a5bce Version: $LATEST
fork/exec /var/task/main: exec format error: PathError
null
END RequestId: 42d5f7d6-3c9d-457d-ab2f-5030b39a5bce
REPORT RequestId: 42d5f7d6-3c9d-457d-ab2f-5030b39a5bce  Duration: 0.43 ms   Billed Duration: 100 ms Memory Size: 512 MB Max Memory Used: 24 MB  Init Duration: 2.84 ms  
如果这很重要,下面是我的代码(我在YouTube上学习了一个教程,使用“main.go”作为文件名):

出于好奇,我决定检查zip文件的权限。这可能与此有关吗

根据 处理程序参数必须与包含处理程序的可执行文件的名称匹配。

是否已将lambda配置中的处理程序名称更新为
main

默认情况下,其设置为
hello


将其更新为
main

在我的例子中,我遵循文档,认为设置GOOS env变量的命令如下所示:

set GOOS=linux
但是,根据以下文件:

因为我是在PowerShell中运行的,所以我应该使用以下命令:

$env:GOOS = "linux"
正如许多文档在其他地方所说,当您在PowerShell中使用以下内容时,无论是从VSCode还是在该IDE之外,您都会知道已正确设置了env变量:

go env

我希望这能帮助以后的人在Windows中编译。

您好-谢谢您的回答,但是是的,我就是这么做的。@很抱歉错过了这一部分。我作为新手犯了那个错误。但是在运行build之前设置了GOOS的双重检查env变量我想我确实设置了env变量,但是最好的检查方法是什么?并不是说我不愿意挖洞,而是在我回到笔记本电脑前会拿走任何东西
go env