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