"PathError" when deploying Go project to AWS Lambda

Issue

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?

Solution

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.

Answered By – Mayank Patel

Answer Checked By – Timothy Miller (GoLangFix Admin)

Leave a Reply

Your email address will not be published.