Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

"PathError" when deploying Go project to AWS Lambda

When deploying this Go-based AWS Lambda project, via AWS console, I receive:

{
  "errorMessage": "fork/exec /var/task/main: exec format error",
  "errorType": "PathError"
}

Here are the steps I took:

  • downloaded the marriage-master project from Git
  • in Terminal, go get "github.com/aws/aws-lambda-go/lambda" so the script is buildable by Go
  • in Terminal, go build main.go to create file Lambda will use to execute
  • in Terminal, zip main.zip main to archive the file into a .zip for deployment to Lambda
  • in AWS Console, upload main.zip to Function code

enter image description here

  • in AWS Console, changed Handler to main.

enter image description here

But I keep getting this path error. Any idea what I'm doing wrong?

like image 948
MSD Avatar asked Sep 02 '25 16:09

MSD


2 Answers

To deploy a Go app in AWS Lambda, run the following commands:

  1. Build the binary targeted to Linux OS and amd64 architecture

    GOARCH=amd64 GOOS=linux go build main.go -ldflags="-s -w"

  2. Zip the binary

    zip lambda.zip main

  3. Upload this binary from AWS Lambda console directly or Put it in an S3 bucket and import it.

You have taken care of the lambda configuration already.

like image 173
Mayank Patel Avatar answered Sep 04 '25 07:09

Mayank Patel


Try without flags:

GOARCH=amd64 GOOS=linux go build main.go
like image 23
Aliabbas Kothawala Avatar answered Sep 04 '25 06:09

Aliabbas Kothawala