为了账号安全,请及时绑定邮箱和手机立即绑定

AWS Lambda GO PathError (Windows 10)

AWS Lambda GO PathError (Windows 10)

Go
慕神8447489 2022-07-11 17:08:33
我在 VSCode 的 PowerShell 中完成了以下操作:PS D:\Project Resume> set GOOS=linuxPS D:\Project Resume> set GOARCH=amd64PS D:\Project Resume> set CGO_ENABLED=0PS D:\Project Resume> cd .\dist\events\PS D:\Project Resume\dist\events> go build -o main main.goPS D:\Project Resume\dist\events> ~\Go\Bin\build-lambda-zip.exe -o main.zip main2020/11/14 14:05:13 wrote main.zip这似乎可以很好地压缩文件,我也在 Lambda 控制台中将处理程序更改为“main”。但是,我仍然得到这个:START RequestId: 42d5f7d6-3c9d-457d-ab2f-5030b39a5bce Version: $LATESTfork/exec /var/task/main: exec format error: PathErrornullEND RequestId: 42d5f7d6-3c9d-457d-ab2f-5030b39a5bceREPORT 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”作为文件名)://Lambda Function Go Codepackage mainimport (    "errors"    "github.com/aws/aws-lambda-go/events"    "github.com/aws/aws-lambda-go/lambda")func main() {    lambda.Start(HandleRequest)}//HandleRequest the request handler for our lambda stufffunc HandleRequest(request events.APIGatewayProxyRequest) (events.APIGatewayProxyResponse, error) {    if request.HTTPMethod == "POST" {        var stringResponse string = "Success :)"        APIResponse := events.APIGatewayProxyResponse{Body: stringResponse, StatusCode: 200}        return APIResponse, nil    }    err := errors.New("Method Not Allowed")    APIResponse := events.APIGatewayProxyResponse{Body: "Method Not OK", StatusCode: 502}    return APIResponse, err}出于好奇,我决定也检查 zip 文件的权限。这可能与它有关,可能吗???
查看完整描述

2 回答

?
慕森卡

TA贡献1806条经验 获得超8个赞

就我而言,我正在关注文档,认为设置 GOOS env 变量的命令是这样的:

set GOOS=linux

但是,根据以下文档:

https://mcpmag.com/articles/2019/03/28/environment-variables-in-powershell.aspx?m=1

由于我在 PowerShell 中运行,我应该使用这个命令:

$env:GOOS = "linux"

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

go env

我希望这可以帮助某人在 Windows 中进行编译。


查看完整回答
反对 回复 2022-07-11
?
慕村9548890

TA贡献1884条经验 获得超4个赞

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

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

默认情况下,它设置为hello

//img1.sycdn.imooc.com//62cbe8b800011bc324650209.jpg

将其更新为main



查看完整回答
反对 回复 2022-07-11
  • 2 回答
  • 0 关注
  • 97 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信