Получение ошибки "fork / exec / var / task / main: нет такого файла или каталога" при выполнении функции aws-lambda - PullRequest
0 голосов
/ 27 сентября 2019

Получение сообщения об ошибке fork / exec / var / task / main: такого файла или каталога при выполнении лямбда-функции нет.

Я использую платформу Windows для запуска и сборки кода на Go.

Я выполнил следующие шаги для развертывания обработчика go aws-lambda:

  1. Написанный код на языке go с VSCode на платформе Windows
  2. Сборка проекта с помощью: go build main.go
  3. Преобразование main.exe в main.zip
  4. Загруженный main.zip с именем обработчика main aws-lambda fuction с использованием учетной записи консоли aws
  5. Создание события теста для проверки лямбда-функции
  6. Получена ошибка "fork / exec / var / task / main: нет такого файла или каталога при выполнении лямбда-функции"
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)
}

команда построения

go build main.go

Ошибка детализациив консоли AWS

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

Выход журнала в консоли AWS

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

1 Ответ

0 голосов
/ 27 сентября 2019

Выполните следующие команды в командной строке

set GOOS=linux
set GOARCH=amd64
set CGO_ENABLED=0

После этого соберите свой проект и загрузите zip-файл в консоль aws lambda

Ссылка: https://github.com/aws/aws-lambda-go

...