- Inicie o módulo do Golang
go mod init <nome-da-pasta>
- Baixe os pacote AWS Lambda para Golang
go get -u github.com/aws/aws-lambda-go/lambda
Aviso: Para informações precisa, veja este tutorial no portal da AWS em caso de mudanças no uso básico
- Crie o arquivo de ponto inicial de Golang
touch main.go
- Implemente um dos seguintes trechos de código no arquivo
main.go
package main
import (
"fmt"
"github.com/aws/aws-lambda-go/events"
"github.com/aws/aws-lambda-go/lambda"
)
func main() {
lambda.Start(handler)
}
func handler(request events.APIGatewayProxyRequest) (events.APIGatewayProxyResponse, error) {
fmt.Println("Hello λ!")
response := events.APIGatewayProxyResponse{
StatusCode: 200,
}
return response, nil
}
package main
import (
"context"
"fmt"
"github.com/aws/aws-lambda-go/lambda"
)
type MyEvent struct {
Name string `json:"name"`
}
func handler(ctx context.Context, name MyEvent) (string, error) {
return fmt.Sprintf("Hello %s!", name.Name), nil
}
func main() {
lambda.Start(handler)
}
- Construa um arquivo binário do arquivo
main.go
GOOS=linux GOARCH=amd64 CGO_ENABLED=0 go build -o main main.go
Observação: o arquivo binário será construído e nomeado como
main
e sem extensão do Golang (.go)
- Comprima o arquivo binário
main
zip <nome-desejado>.zip <arquivo-alvo>
Nota: pode ser necessário instalar o pacote zip no Linux em caso de ausência em sua máquina
- Faça upload deste arquivo no painel da função Lambda na AWS
- Ainda no portal da AWS, vá nas configurações do runtime, altere o nome do handler pelo nome do arquivo binário
Obs: por padrão, a AWS nomeia o handler do runtime como hello