[Golang] Tạo Project Lambda bằng Serverless
Yêu Cầu Để bắt đầu làm aws lambda bắt buộc phải setup những thư viện sau:
- Setup node version:
node -v
- Setup npm version:
npm -v
- Setup serverless framework: đọc thêm bài viết này link
- Aws Account: đăng kí một account aws, hiện tại thì đăng kí account hơi khó, cần call trực tiếp với call-center từ aws.
Tạo project
- serverless hỗ trợ rất nhiều ngôn ngữ làm việc với lambda: golang, java, nodejs, c#. Run
serverless create -h
-> để xem những ngôn ngữ hiện tại lambda hỗ trợ:
- Để tạo source code lambda với csharp, run:
serverless create -t aws-csharp -p lambda-csharp
- Để tạo source code lambda với Golang, run:
serverless create -t aws-go -p lambda-go
-> tạo ra 1 folder lambda-go, template aws-go của ngôn ngữ golang structure:
Giải Thích Folder
- File serverless.yaml: dùng để cấu hình tất cả những thứ liên quan đến lambda:
- timeout: cấu hình thời gian thực thi của một function lambda
- memory: được cấp memory trong quá trình thực thi
- environment: biến môi trường được set
- role: các quyền của lambda này đối với những service khác như: dynamo, s3, rekognition,... ...
- File Makefile: là một số lệnh để build golang.
.PHONY: build clean deploy
build:
env GOARCH=amd64 GOOS=linux go build -ldflags="-s -w" -o bin/hello hello/main.go
env GOARCH=amd64 GOOS=linux go build -ldflags="-s -w" -o bin/world world/main.go
clean:
rm -rf ./bin
deploy: clean build
sls deploy --verbose
- Run:
make build
-> tạo ra file binary hello, world trong folder bin/,
- Run:
make deploy
-> sẽ deploy 2 function hello, world lên aws
Deploy Lên Aws Lambda
- Deploy Function
- Serverless Framework hỗ trợ hầu như là tất cả những thứ có thể để làm với aws-lambda
- Cần setup aws credential trước nhé: tham khảo link: https://viblo.asia/p/cau-hinh-aws-credential-zOQJwYPxVMP
- Lệnh Deploy:
make deploy
- đợi khoản 30s, sẽ thấy kết quả:
- Kiểm Tra:
- Lên aws console: https://us-east-1.console.aws.amazon.com/lambda/home?region=us-east-1#/functions
- Thấy có 2 function: lambda-go-dev-world và lambda-go-dev-hello là đã deploy thành công rồi, và nhớ kiểm tra deploy function lên region nào.
Contact
- facebook: https://www.facebook.com/phucducdev/
- gmail: ducnp09081998@gmail.com or phucducktpm@gmail.com
- linkedin: https://www.linkedin.com/in/phucducktpm/
- hashnode: https://hashnode.com/@OpenDev
- telegram: https://t.me/OpenDevGolang
All rights reserved