+5

[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:

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 đến provided.al2
  • architecture từ x86_64 đến arm64

Còn lại thì code bên trong không có đổi gì cả.

Link Tham Khảo

Liên Hệ


All Rights Reserved

Viblo
Let's register a Viblo Account to get more interesting posts.