Get in touch
or send us a question?
CONTACT

Tạo Lambda với container image

Trong tất cả các dịch vụ được triển khai trên nền tảng cloud của Amazon, chắc hẳn phổ biến và nổi tiếng nhất chúng ta không thể không kể đến Lambda

Để hiểu hết bài viết thì cần có chút kiến thức cơ bản về lambda, có thể tìm hiểu ở đây nhé. Một số từ ngữ dịch sang tiếng việt nghe hơi đụt và khó hiểu nên mình để nguyên gốc tiếng anh.

AWS Lambda là dịch vụ điện toán serverless có chức năng chạy mã của bạn để phản hồi các event và tự động quản lý tài nguyên cơ sở cho bạn.

Lambda chạy mã trong cơ sở hạ tầng điện toán có khả năng sử dụng cao và thực hiện toàn bộ công tác quản trị tài nguyên điện toán của bạn, trong đó có bảo trì máy chủ và hệ điều hành, dự phòng dung lượng và tự động mở rộng, triển khai bản vá bảo mật và triển khai mã cũng như theo dõi và ghi nhật ký mã. Tất cả những gì bạn cần làm chỉ là cung cấp mã.

Tuy còn một vài hạn chế như timeout 15 phút, dung lượng source max 250MB, nhưng có thể nói Lambda là giải pháp tương đối toàn diện khi muốn triển khai một hệ thống serverless có khả năng mở rộng, chịu tải tốt.

Câu hỏi ở đây là : Vậy nếu một hệ thống serverless có sẵn muốn chuyển sang sử dụng lambda thì sẽ thế nào ? Và cụ thể ở đây là một hệ thống đã được triển khai bằng Docker.

Từ tháng 12 năm 2020, Amazon đã bắt đầu hỗ trợ việc khởi tạo Lambda bằng container image.

Hiện tại bạn có thể đóng gói Lambda source và toàn bộ các thư viện cần thiết vào một container image. Sau đó tải lên  Amazon Elastic Container Registry (Amazon ECR). Và sử dụng container đó để khởi tạo Lambda nhé.

*Chú ý : Để triển khai một container image tới Lambda, image của bạn cần thoả mãn các điều sau :

  • Container image của bạn đã phải cài đặt sẵn Lambda RuntimeAPI của Amazon, runtime interface clients RIC. RIC sẽ được sử dụng để làm ENTRYPOINT của container.
  • Source code của bạn chỉ được quyền ghi trong thử mục /tmp với tối đa 512MB. Các đường dẫn còn lại chỉ có quyền đọc và Lambda có quyền truy cập vào tất cả các đường dẫn nằm trong image.
  • Chỉ hỗ trợ container image trên môi trường Linux.

Đối với người sử dụng Lambda, chức năng còn tương đối mới và đang liên tục được amazon cập nhật.

Hướng dẫn cụ thể có thể tra cứu trên tài liệu chính thức của amazon nhé.