gpt4 book ai didi

amazon-web-services - 如何从 AWS lambda 执行 exe 文件

转载 作者:行者123 更新时间:2023-12-03 02:28:51 27 4
gpt4 key购买 nike

我编写了一个 lambda 函数,它执行另一个名为 abc.exe 的 exe 文件。

现在我已经创建了 lambda 函数的 zip 并将其上传到 aws。我不确定将“abc.exe”放在哪里

我尝试将其放在同一个 zip 中,但出现以下错误:

exec: "abc": executable file not found in $PATH:

这是我的 lambda 函数代码:

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: no such file or directory:

下载 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()

最佳答案

are you sure you even can execute an external binary? That seems counter-intuitive to me, like it violates the point of Lambda

完全可以接受。看看Running Arbitrary Executables in AWS Lambda在 AWS 计算博客上。

I am not sure where to put my "abc.exe"

要在 Lambda 上运行可执行文件,请将它们打包到您上传的 ZIP 文件中。然后做类似的事情

exec.Command(path.Join(os.GetEnv("LAMBDA_TASK_ROOT"), "abc.exe"))

What sort of file is the .exe file? Is it a Windows app?

您将无法在 Lambda 上运行 Windows 应用程序。链接的博客文章说:如果您编译自己的二进制文件,请确保它们是静态链接的或者是为匹配版本的 Amazon Linux 构建的

关于amazon-web-services - 如何从 AWS lambda 执行 exe 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55194598/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com