https://github.com/t0malexander/aws-lambda-alura
Guia básico do conceito de Serverless e funções do serviço AWS Lambda com Golang
https://github.com/t0malexander/aws-lambda-alura
aws-lambda devops golang serverless
Last synced: 2 months ago
JSON representation
Guia básico do conceito de Serverless e funções do serviço AWS Lambda com Golang
- Host: GitHub
- URL: https://github.com/t0malexander/aws-lambda-alura
- Owner: T0mAlexander
- Created: 2023-06-27T19:03:58.000Z (almost 2 years ago)
- Default Branch: main
- Last Pushed: 2023-06-28T15:29:37.000Z (almost 2 years ago)
- Last Synced: 2025-02-15T06:16:57.807Z (4 months ago)
- Topics: aws-lambda, devops, golang, serverless
- Language: Go
- Homepage:
- Size: 64.5 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# AWS Lambda e Golang
## Uso básico
1. Inicie o módulo do Golang
```bash
go mod init
```2. Baixe os pacote AWS Lambda para Golang
```bash
go get -u github.com/aws/aws-lambda-go/lambda
```> **Aviso:** Para informações precisa, veja este [tutorial](https://docs.aws.amazon.com/pt_br/lambda/latest/dg/golang-handler.html) no portal da AWS em caso de mudanças no uso básico
3. Crie o arquivo de ponto inicial de Golang
```bash
touch main.go
```4. Implemente um dos seguintes trechos de código no arquivo `main.go`
### Exemplo 1
```go
package mainimport (
"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
```go
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)
}
```5. Construa um arquivo binário do arquivo `main.go`
```bash
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)**
6. Comprima o arquivo binário `main`
```bash
zip .zip
```> **Nota:** pode ser necessário instalar o pacote zip no Linux em caso de ausência em sua máquina
7. Faça upload deste arquivo no painel da função Lambda na AWS
Captura de tela
8. 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**