[Golang] Migration Lambda Từ Runtime go1.x -> provided.al2
Trong bài viết này, mình sẽ hướng dẫn cách để migrate từ runtime go1.x lên runtime provided.al2
Ban đầu, để có thể migrate thì trước tiên cần có bạn cần có một lambda function runtime go1.x, checkout repo.
Nếu có vấn đề khi deploy một function lambda, link tham khảo:
- Create Lambda Đơn giản: https://viblo.asia/p/golang-tao-project-lambda-bang-serverless-EoW4ob9xVml
- Lambda Function CRUD: https://viblo.asia/p/go-lambda-apigateway-xu-ly-request-response-5pPLkPY8VRZ
Sau khi bạn deploy xong, vào console của aws check thì sẽ thấy thông số:
- Runtime: Go 1.x
- Architecture: x86_64
Ảnh tham khảo.
Migration
Runtime Go1.x
- Makefile cũ:
env GOARCH=amd64 GOOS=linux go build -ldflags="-s -w" -o x86 migration/main.go
- file serverless.yaml cũ:
service: golang-migration
frameworkVersion: '3'
provider:
name: aws
runtime: go1.x
region: ap-southeast-1
functions:
hello:
handler: x86
events:
- httpApi:
path: /x86
method: get
Runtime provided.al2
- makefile mới:
env GOARCH=arm64 GOOS=linux go build -ldflags="-s -w" -o bootstrap migration/main.go
- serverless mới:
service: golang-migration
frameworkVersion: '3'
provider:
name: aws
runtime: provided.al2 # <- change from go1.x to provided.al2
architecture: arm64 # <- change from x86_64 to arm64
region: ap-southeast-1
functions:
hello:
# handler: x86 # old
handler: bootstrap # new
events:
- httpApi:
# path: /x86 # old
path: /arm64 # new
method: get
- kết quả trên console:
Tóm lại
Mình thấy việc migrate này khá là đơn giản chỉ cẩn đổi
- runtime từ
go1.x
đếnprovided.al2
- architecture từ
x86_64
đếnarm64
Còn lại thì code bên trong không có đổi gì cả.
Link Tham Khảo
Liên Hệ
- facebook: https://www.facebook.com/phucducdev/
- gmail: ducnp09081998@gmail.com
- linkedin: https://www.linkedin.com/in/phucducktpm/
- hashnode: https://hashnode.com/@OpenDev
- telegram: https://t.me/OpenDevGolang
All rights reserved