【问题标题】:Unable to deploy lambda function written in Go无法部署用 Go 编写的 lambda 函数
【发布时间】:2018-08-11 06:51:01
【问题描述】:

我正在尝试将我的代码部署到 AWS Lambda。我已经用 Go 编写了它。它构建得很好,但我在通过 Lambda 测试功能运行它时收到此错误:

{
  "errorMessage": "fork/exec /var/task/github-activity: no such file or directory",
  "errorType": "PathError"
}

您可以在以下位置查看完整代码:https://github.com/JustinDFuller/github-activity 我已经测试并看到它在我的机器上运行良好。 (我在 windows 和 linux 上试过)。

我正在部署的文件是通过运行以下命令生成的:

GOOS=linux GOARCH=amd64 go build -o main awsLambdaImpl.go zip main.zip main

【问题讨论】:

    标签: amazon-web-services go aws-lambda


    【解决方案1】:

    Go Lambda 的处理程序是 path to executable

    由于您要上传以下结构的 zip 文件

    main.zip
    |
    `-- main  <-- executable
    

    您的处理程序名称必须是 main

    如果您按以下方式打包 lambda,那么您的处理程序将是

    main.zip
    |
    `-- subdir
          |
          `-- executableInASubdirPackedIntoAZip  <-- executable
    

    您的处理程序将是 subdir/executableInASubdirPackedIntoAZip

    【讨论】:

    • 谢谢!这解决了它!在 lambda 设置中,我没有注意到它有一个名为“handler”的字段,它被设置为我的 lambda 函数的名称(“github-activity”)。将处理程序更改为“main”解决了这个问题。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-11-17
    • 2021-09-28
    • 2018-08-06
    • 2022-01-08
    • 2021-04-12
    • 1970-01-01
    相关资源
    最近更新 更多