首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在执行aws函数时出错"fork/exec /var/task/main:没有这样的文件或目录“

在执行aws函数时出错"fork/exec /var/task/main:没有这样的文件或目录“
EN

Stack Overflow用户
提问于 2019-09-27 10:57:58
回答 14查看 31.7K关注 0票数 46

在执行lambda函数时获取error fork/exec /var/task/main: no such file or directory

我正在使用windows平台运行并在Go中构建代码。

我已经完成了部署go aws处理程序的步骤:

  1. windows平台下用VSCode语言编写的go语言代码
  2. 使用: go Build main.go构建项目
  3. 将main.exe转换为main.zip
  4. 使用aws控制台帐户上传带有处理程序名称的main.zip主aws函数
  5. 创建测试事件以测试lambda函数
  6. 得到错误“叉子/exec /var/task/main:在执行lambda函数时没有这样的文件或目录”
代码语言:javascript
复制
package main

import (
    "fmt"

    "github.com/aws/aws-lambda-go/lambda"
)

// Request represents the requested object
type Request struct {
    ID    int    `json:"ID"`
    Value string `json:"Value"`
}

// Response represents the Response object
type Response struct {
    Message string `json:"Message"`
    Ok      bool   `json:"Ok"`
}

// Handler represents the Handler of lambda
func Handler(request Request) (Response, error) {
    return Response{
        Message: fmt.Sprint("Process Request Id %f", request.ID),
        Ok:      true,
    }, nil
}

func main() {
    lambda.Start(Handler)
}

构建命令

代码语言:javascript
复制
go build main.go

AWS控制台中的详细错误

代码语言:javascript
复制
{
  "errorMessage": "fork/exec /var/task/main: no such file or directory",
  "errorType": "PathError"
}

AWS控制台中的日志输出

代码语言:javascript
复制
START RequestId: 9ef206ed-5538-407a-acf0-06673bacf2d7 Version: $LATEST
fork/exec /var/task/main: no such file or directory: PathError
null
END RequestId: 9ef206ed-5538-407a-acf0-06673bacf2d7
REPORT RequestId: 9ef206ed-5538-407a-acf0-06673bacf2d7  Duration: 0.64 ms   Billed Duration: 100 ms Memory Size: 512 MB Max Memory Used: 31 MB  Init Duration: 1.49 ms
EN

回答 14

Stack Overflow用户

回答已采纳

发布于 2019-09-27 12:58:29

在命令提示符中运行以下命令

代码语言:javascript
复制
set GOOS=linux
set GOARCH=amd64
set CGO_ENABLED=0

之后,构建项目并将zip文件上载到aws控制台lambda。

像这样

GOOS=linux GOARCH=amd64 CGO_ENABLED=0 go build -o main main.go

参考链接:https://github.com/aws/aws-lambda-go

票数 23
EN

Stack Overflow用户

发布于 2020-07-08 18:00:15

在我的例子中,问题是将默认的处理程序设置为'hello‘函数。

需要通过AWS视图面板将其更改为“main”,-> Basic Settings ->编辑。

票数 38
EN

Stack Overflow用户

发布于 2020-01-09 20:10:50

有两个原因可以发生:

  1. 在go构建时,您没有使用GOOS=linux GOARCH=amd64,所以请尝试: GOOS=linux GOARCH=amd64 go构建-o main main.go
  2. 你曾经用高寒的图像来构建这个程序的一些CI函数,所以尝试使用完整的golang图像。
票数 10
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58133166

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档