Skip to content

Guia básico do conceito de Serverless e funções do serviço AWS Lambda com Golang

Notifications You must be signed in to change notification settings

T0mAlexander/AWS-Lambda-Alura

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

AWS Lambda e Golang

Uso básico

  1. Inicie o módulo do Golang
go mod init <nome-da-pasta>
  1. 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

  1. Crie o arquivo de ponto inicial de Golang
touch main.go
  1. Implemente um dos seguintes trechos de código no arquivo main.go

Exemplo 1

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
}

Exemplo 2

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)
}
  1. 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)

  1. 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

  1. Faça upload deste arquivo no painel da função Lambda na AWS
Captura de tela
  1. Ainda no portal da AWS, vá nas configurações do runtime, altere o nome do handler pelo nome do arquivo binário
Captura de tela
  • Passo 1

  • Passo 2

Obs: por padrão, a AWS nomeia o handler do runtime como hello

About

Guia básico do conceito de Serverless e funções do serviço AWS Lambda com Golang

Topics

Resources

Stars

Watchers

Forks

Languages