Я написал лямбда-функцию, которая выполняет другой исполняемый файл с именем abc.exe.
Теперь я создал zam-функцию лямбда-функции и загрузил ее в aws.Я не уверен , куда поместить мой "abc.exe"
Я попытался поместить его в тот же почтовый индекс, но я получаю ошибку ниже:
exec:«abc»: исполняемый файл не найден в $ PATH:
Вот мой код лямбда-функции:
func HandleLambdaEvent(request Request) (Response, error) {
fmt.Println("Input", request.Input)
fmt.Println("Output", request.Output)
cmd := exec.Command("abc", "-v", "--lambda", request.Input, "--out", request.Output)
var out bytes.Buffer
var stderr bytes.Buffer
cmd.Stdout = &out
cmd.Stderr = &stderr
err := cmd.Run()
if err != nil {
fmt.Println(fmt.Sprint(err) + ": " + stderr.String())
return Response{Message: fmt.Sprintf(stderr.String())}, nil
}
fmt.Println("Result: " + out.String())
return Response{Message: fmt.Sprintf(" %s and %s are input and output", request.Input, request.Output)}, nil
}
Обновление:
Пробная версия 1:
Я загрузил файл abc.exe на s3, затем в своей функции HandleLambdaEvent загружаю его в папку tmp /.И затем, когда я пытаюсь получить доступ к нему после успешной загрузки, он показывает следующее сообщение об ошибке:
fork / exec / tmp / abc: нет такого файла или каталога:
Кодскачать abc.exe:
file, err2 := os.Create("tmp/abc.exe")
if err2 != nil {
fmt.Println("Unable to create file %q, %v", err2)
}
defer file.Close()
sess, _ := session.NewSession(&aws.Config{
Region: aws.String(region)},
)
downloader := s3manager.NewDownloader(sess)
numBytes, err2 := downloader.Download(file,
&s3.GetObjectInput{
Bucket: aws.String(bucket),
Key: aws.String("abc.exe"),
})
if err2 != nil {
fmt.Println("Unable to download item %q, %v", fileName, err2)
}
fmt.Println("Downloaded", file.Name(), numBytes, "bytes")
file.Close()