Hướng dẫn tạo Lambda Layer tự động với AWS CodeBuild và S3
Trong bài viết này, chúng ta sẽ cùng nhau tìm hiểu cách tạo ra một Lambda Layer sử dụng AWS CodeBuild để tự động hóa quá trình xây dựng và đóng gói, và lưu trữ vào S3 Bucket. Việc này sẽ giúp bạn dễ dàng quản lý các thư viện và phụ thuộc cần thiết cho các hàm Lambda của bạn.
1. Chuẩn bị môi trường làm việc
Trước khi bắt đầu, bạn cần thực hiện các bước chuẩn bị sau:
Tạo S3 Bucket
Bạn cần tạo một S3 Bucket để lưu trữ các file zip chứa Lambda Layer.
Tạo IAM Role
Tạo một IAM Role với các quyền cần thiết cho CodeBuild, S3 và Lambda để đảm bảo quy trình hoạt động trơn tru.
2. Tạo CodeBuild Project trên AWS Console
Bước 1: Khởi tạo Dự án CodeBuild
- Truy cập AWS CodeBuild và chọn
Create build project
. - Tên dự án: Đặt tên cho dự án của bạn, ví dụ:
langchain
. - Nguồn mã: Chọn
No Source
.
Bước 2: Cấu hình Môi trường Build
- Hình ảnh môi trường: 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.
- Service Role: Sử dụng một IAM role đã tồn tại hoặc tạo IAM role mới với các quyền phù hợp cho CodeBuild.
Bước 3: Tạo Buildspec
-
Dưới phần Buildspec, hãy chọn
Insert build commands
và nhấnSwitch to editor
. -
Dán đoạn mã sau vào editor:
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'
-
Artifact: Artifact chính 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 để dễ dàng phục vụ cho việc triển khai hoặc cập nhật Lambda Layer.
Cuối cùng, hãy nhấn Create build project
để tạo dự án.
3. Khởi động Build và Tải Layer lên Lambda
Sau khi tạo xong dự án CodeBuild, bạn 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.
Bước 1: Bắt đầu Build
Chọn "Start build" trong AWS CodeBuild Console để khởi động quá trình xây dựng và đóng gói Lambda Layer.
Bước 2: Theo dõi quá trình Build
- Chờ đợi cho đến khi quá trình build hoàn tất. Bạn có thể theo dõi tiến trình trong phần "Build logs" của CodeBuild Console để kiểm tra xem quá trình cài đặt và đóng gói có thành công hay không.
- Khi build thành công, trạng thái build sẽ hiển thị là "SUCCEEDED" và file .zip của layer sẽ được lưu trữ trong S3 Bucket mà bạn đã chỉ định.
Bước 3: Lấy URL của File .zip và Tạo Lambda Layer
- Truy cập vào S3 Bucket mà bạn đã chỉ định và tìm file .zip vừa tải lên. Sao chép URL của file này.
- Sử dụng AWS CLI để tạo Lambda Layer với URL của file .zip đó.
4. Sử dụng Lambda Layer trong Hàm Lambda
Sau khi tạo thành công Lambda Layer, bạn có thể thêm layer này vào hàm Lambda của mình như sau:
Bước 1: Cập nhật Lambda Console
- Đi đến AWS Lambda Console và chọn hàm Lambda mà bạn muốn sử dụng.
- Chọn phần "Layers" và nhấn vào "Add a layer".
- Chọn layer mà bạn đã tạo và gán nó vào hàm Lambda.
Kết luận
Việc sử dụng AWS CodeBuild cùng với S3 Bucket giúp 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ả. Điều này không chỉ 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 với bài viết này, bạn sẽ dễ dàng hơn trong việc triển khai và quản lý Lambda Layers! Nếu bạn có bất kỳ câu hỏi nào hoặc cần thêm hỗ trợ, đừng ngần ngại hỏi nhé!
Lời cảm ơn
Đặc biệt xin gửi lời cảm ơn đến đồng nghiệp của tôi, Khang Nguyen, người đã đồng hành và hỗ trợ tôi trong suốt quá trình viết bài này!
source: viblo