+3

Tạo Lambda Layer với AWS CodeBuild

Trong bài viết này, sẽ tạo một Lambda Layer sử dụng CodeBuild để tự động hóa quá trình xây dựng và đóng gói và lưu trữ vào S3 Bucket.

1. Chuẩn bị môi trường

Trước khi bắt đầu, cần tạo một S3 Bucket lưu trữ: image.png

IAM Role: IAM Role với quyền cần thiết cho CodeBuild, S3 và Lambda.

2. Tạo CodeBuild Project trên AWS Console

  1. Đi đến AWS CodeBuild và chọn Create build project.
  2. Project name: Đặt tên cho dự án, ví dụ: langchain.
  3. Source provider: Chọn nguồn mã, No Source.

image.png

  1. Environment Image: Chọn "Managed Image", rồi chọn môi trường build phù hợp, ví dụ: "Lambda" và chọn runtime là Python
  2. Service role: Sử dụng một IAM role đã tồn tại hoặc tạo một IAM role mới với quyền phù hợp cho CodeBuild.

image.png

  1. Buildspec: Sử dụng file Insert build commands và chọn Switch to editor.

image.png

version: 0.2

phases:
  build:
    commands:
      - pip config set global.target ""
      - mkdir -p package/python
      - pip install --target package/python langchain-core==0.2.19
      - pip install --target package/python langchain-community==0.2.7
      - pip install --target package/python langchain==0.2.8
      - pip install --target package/python langchain-aws==0.1.11
      - cd package && zip ../langchain-layer.zip * -r

artifacts:
  files:
    - 'langchain-layer.zip'
  1. Artifact: Artifact là kết quả của quá trình xây dựng, trong trường hợp này là file .zip chứa Lambda Layer. Sau khi quá trình build hoàn tất, artifact sẽ được lưu trữ trong S3 Bucket để có thể dễ dàng truy cập và sử dụng cho việc triển khai hoặc cập nhật Lambda Layer. image.png

Sau khi hoàn tất thiết lập, nhấn Create build project.

3. Chạy Build và Tải Layer lên Lambda

Sau khi tạo xong CodeBuild Project, có thể bắt đầu một build mới. Quá trình này sẽ tự động cài đặt các thư viện và tạo file .zip, sau đó tải lên S3 Bucket.

  1. Start Build: Bắt đầu quá trình build bằng cách chọn "Start build" trong AWS CodeBuild Console. Điều này sẽ khởi động quá trình xây dựng và đóng gói Lambda Layer.

image.png

  1. Waiting for Build to Complete : Chờ quá trình build hoàn tất. Có thể theo dõi tiến trình trong phần "Build logs" của CodeBuild Console để biết được liệu việc cài đặt và đóng gói có thành công hay không.

image.png

  1. Build Successful : Khi build thành công, sẽ thấy trạng thái build hiển thị là "SUCCEEDED". Lúc này, file .zip của layer sẽ được lưu trữ trong S3 Bucket mà đã chỉ định.

image.png

Khi build thành công, có thể thấy layer từ S3

  1. Lấy URL của File .zip: Truy cập vào S3 Bucket mà đã chỉ định trong quá trình build, tìm file .zip vừa được tải lên. Sao chép URL của file này.

image.png

2.Tạo Lambda Layer từ File .zip: Sử dụng AWS CLI để tạo Lambda Layer với URL của file .zip

image.png

4. Sử dụng Lambda Layer trong hàm Lambda

Sau khi tạo thành công Lambda Layer, có thể thêm layer này vào hàm Lambda của mình.

  1. Đi đến AWS Lambda Console và chọn hàm Lambda mà muốn sử dụng.
  2. Chọn phần "Layers" và nhấn vào "Add a layer".
  3. Chọn layer mà đã tạo và gán nó vào hàm Lambda.

image.png

Kết luận

Bằng cách sử dụng AWS CodeBuild và S3 Bucket, có thể tự động hóa quá trình tạo Lambda Layer để đảm bảo rằng các thư viện và phụ thuộc luôn được đóng gói một cách nhất quán và hiệu quả. Việc này không chỉ giúp tiết kiệm thời gian mà còn đảm bảo khả năng tái sử dụng và giảm thiểu lỗi cho nhiều hàm Lambda khác nhau.

Hy vọng bài viết này giúp dễ dàng hơn trong việc triển khai và quản lý Lambda Layers! Nếu có bất kỳ câu hỏi hoặc cần thêm hỗ trợ, đừng ngần ngại hỏi nhé!

I would like to extend my special thanks to my collaborator, Khang Nguyen, who has accompanied and supported me throughout the creation of this article!!!


All rights reserved

Viblo
Hãy đăng ký một tài khoản Viblo để nhận được nhiều bài viết thú vị hơn.
Đăng kí