AWS Lambda là gì? Hàm Lambda với các ví dụ

Mục lục:

Anonim

Trước hàm AWS Lambda, hãy hiểu:

Serverless là gì?

Serverless là một thuật ngữ dùng để chỉ các ứng dụng không có máy chủ. Các ứng dụng không máy chủ là những ứng dụng không cần cung cấp máy chủ và không yêu cầu quản lý máy chủ.

AWS Lambda là gì?

AWS Lambda là một nền tảng máy tính hướng sự kiện, không máy chủ được cung cấp bởi Amazon như một phần của Dịch vụ Web Amazon. Do đó, bạn không cần phải lo lắng về việc khởi chạy tài nguyên AWS nào hoặc bạn sẽ quản lý chúng như thế nào. Thay vào đó, bạn cần đặt mã trên Lambda và nó sẽ chạy.

Trong AWS Lambda, mã được thực thi dựa trên phản hồi của các sự kiện trong dịch vụ AWS như thêm / xóa tệp trong nhóm S3, yêu cầu HTTP từ cổng API Amazon, v.v. Tuy nhiên, Amazon Lambda chỉ có thể được sử dụng để thực thi các tác vụ nền.

Chức năng AWS Lambda giúp bạn tập trung vào sản phẩm cốt lõi và logic kinh doanh của mình thay vì quản lý kiểm soát truy cập hệ điều hành (OS), vá lỗi hệ điều hành, định cỡ phù hợp, cung cấp, mở rộng quy mô, v.v.

Trong hướng dẫn AWS Lambda dành cho người mới bắt đầu này, bạn sẽ học:

  • AWS Lambda hoạt động như thế nào?
  • Sự kiện kích hoạt AWS Lambda
  • Các khái niệm AWS Lambda
  • AWS Lambda VS AWS EC2
  • AWS Lambda VS AWS Elastic Beanstalk
  • Các trường hợp sử dụng của AWS Lambda
  • Các phương pháp hay nhất của hàm Lambda
  • Khi nào không sử dụng AWS Lambda
  • Ưu điểm của việc sử dụng AWS Lambda
  • Hạn chế của AWS Lambda

AWS Lambda hoạt động như thế nào?

Ví dụ AWS Lambda sau với sơ đồ khối giải thích hoạt động của AWS Lambda trong một vài bước đơn giản:

Bước 1: Đầu tiên tải lên mã AWS Lambda của bạn bằng bất kỳ ngôn ngữ nào được AWS Lambda hỗ trợ. Java, Python, Go và C # là một số ngôn ngữ được hỗ trợ bởi hàm AWS Lambda.

Bước 2: Đây là một số dịch vụ AWS cho phép bạn kích hoạt AWS Lambda.

Bước 3: AWS Lambda giúp bạn tải lên mã và chi tiết sự kiện mà mã sẽ được kích hoạt.

Bước 4: Thực thi AWS Lambda Code khi nó được kích hoạt bởi các dịch vụ AWS:

Bước 5: AWS chỉ tính phí khi mã AWS lambda thực thi và không tính phí theo cách khác.

Điều này sẽ xảy ra trong các trường hợp sau:

  • Tải lên tệp trong nhóm S3
  • Khi URL điểm cuối nhận / đăng HTTP được truy cập
  • Để thêm / sửa đổi và xóa các bảng Dynamo DB
  • Trong quá trình thu thập luồng dữ liệu
  • Thông báo đẩy
  • Lưu trữ trang web
  • Gửi email

Lưu ý: Bạn nên nhớ rằng bạn sẽ chỉ tính phí cho các dịch vụ AWS khi mã AWS Lambda thực thi, nếu không bạn không cần phải trả bất kỳ khoản phí nào.

Sự kiện kích hoạt AWS Lambda

Đây là các Sự kiện sẽ được kích hoạt khi bạn sử dụng AWS Lambda.

  • Chèn, cập nhật và xóa dữ liệu Bảng Dynamo DB
  • Để bao gồm thông báo đẩy trong SNS
  • Để tìm kiếm lịch sử nhật ký trong CloudTrail
  • Nhập vào một đối tượng S3
  • DynamoDB có thể kích hoạt AWS Lambda bất cứ khi nào có dữ liệu được thêm, sửa đổi và xóa trong bảng.
  • Giúp bạn lên lịch sự kiện để thực hiện nhiệm vụ theo mô hình thời gian thông thường.
  • Các sửa đổi đối với các đối tượng trong nhóm S3
  • Thông báo được gửi từ Amazon SNS.
  • AWS Lambda có thể được sử dụng để xử lý nhật ký CloudTrail
  • API Gateway cho phép bạn kích hoạt AWS Lambda trên các phương thức GET / POST.

Các khái niệm AWS Lambda

Chức năng:

Hàm là một chương trình hoặc một tập lệnh chạy trong AWS Lambda. Lambda chuyển các sự kiện gọi vào hàm của bạn, hàm này sẽ xử lý một sự kiện và trả về phản hồi của nó.

Runtimes:

Runtime cho phép các hàm bằng nhiều ngôn ngữ khác nhau chạy trên cùng một môi trường thực thi cơ sở. Điều này giúp bạn định cấu hình chức năng của mình trong thời gian chạy. Nó cũng khớp với ngôn ngữ lập trình đã chọn của bạn.

Nguồn sự kiện:

Nguồn sự kiện là một dịch vụ AWS, chẳng hạn như Amazon SNS hoặc một dịch vụ tùy chỉnh. Hàm kích hoạt này giúp bạn thực thi logic của nó.

Lớp Lambda:

Các lớp Lambda là một cơ chế phân phối quan trọng cho các thư viện, thời gian chạy tùy chỉnh và các phụ thuộc chức năng quan trọng khác. Thành phần AWS này cũng giúp bạn quản lý mã chức năng phát triển của mình riêng biệt với mã và tài nguyên không thay đổi mà nó sử dụng.

Ghi nhật ký các luồng:

Luồng nhật ký cho phép bạn chú thích mã chức năng của mình bằng các câu lệnh ghi nhật ký tùy chỉnh giúp bạn phân tích luồng thực thi và hiệu suất của các chức năng AWS Lambda của mình.

Cách sử dụng AWS Lambda

Bây giờ, chúng ta sẽ học cách sử dụng AWS Lambda với ví dụ AWS Lambda:

Bước 1 ) Goto https://aws.amazon.com/lambda/ và Bắt đầu

Bước 2 ) Tạo tài khoản hoặc đăng nhập bằng tài khoản hiện có của bạn

Bước 3 ) Trong trang Lambda tiếp theo,

  1. Chỉnh sửa mã
  2. Bấm Chạy

Bước 4 ) Bạn sẽ thấy đầu ra

AWS Lambda VS AWS EC2

Dưới đây là một số khác biệt chính giữa AWS Lambda và EC2.

Thông số AWS Lambda AWS EC2
Định nghĩa AWS Lambda là Nền tảng như một dịch vụ (PaaS). Nó giúp bạn chạy và thực thi mã phụ trợ của mình. AWS EC2 là Cơ sở hạ tầng dưới dạng Dịch vụ (laaS). Nó cung cấp tài nguyên máy tính ảo hóa.
Uyển chuyển Không cung cấp bất kỳ sự linh hoạt nào để đăng nhập vào các phiên bản tính toán. Nó cho phép bạn chọn thời gian chạy hệ điều hành hoặc ngôn ngữ tùy chỉnh. Cung cấp sự linh hoạt để lựa chọn nhiều phiên bản, hệ thống tùy chỉnh, bản vá bảo mật và mạng, v.v.
Quá trình cài đặt Bạn cần chọn môi trường mà bạn muốn chạy mã và đẩy mã vào AWS Lambda. Lần đầu tiên trong EC2, bạn phải chọn hệ điều hành và cài đặt tất cả phần mềm cần thiết, sau đó đẩy mã của bạn vào EC2.
Các hạn chế về môi trường Nó bị hạn chế đối với một số ngôn ngữ. Không hạn chế môi trường.

AWS Lambda VS AWS Elastic Beanstalk

Dưới đây là một số khác biệt chính giữa AWS Lambda và Elastic Beanstalk.

Thông số AWS Elastic Beanstalk AWS Lambda
Nhiệm vụ chính Triển khai và quản lý các ứng dụng trên Đám mây AWS mà không cần lo lắng về cơ sở hạ tầng chạy các ứng dụng đó. AWS Lambda được sử dụng để chạy và thực thi mã Back-end của bạn. Bạn không thể sử dụng nó để triển khai một ứng dụng.
Lựa chọn tài nguyên AWS Nó cho phép bạn tự do lựa chọn các tài nguyên AWS; Ví dụ, bạn có thể chọn phiên bản EC2 tối ưu theo ứng dụng của bạn. Bạn không thể chọn tài nguyên AWS, chẳng hạn như một loại phiên bản EC2, Lambda cung cấp tài nguyên dựa trên khối lượng công việc của bạn.
Loại hệ thống Nó là một hệ thống trạng thái. Nó là một hệ thống không trạng thái.

Các trường hợp sử dụng của AWS Lambda

AWS Lambda được sử dụng cho một loạt các ứng dụng như:

  • Giúp bạn cho quy trình ETL
  • Cho phép bạn thực hiện xử lý tệp thời gian thực và xử lý luồng thời gian thực
  • Sử dụng để tạo các ứng dụng web
  • Sử dụng trong các sản phẩm của Amazon như Alexa Chatbots và Amazon Echo / Alexa
  • Xử lý dữ liệu (phân tích phát trực tuyến thời gian thực)
  • Sao lưu tự động các công việc hàng ngày
  • Giao diện người dùng có thể mở rộng (ứng dụng di động, thiết bị loT)
  • Giúp bạn thực thi logic phụ trợ phía máy chủ
  • Cho phép bạn lọc và chuyển đổi dữ liệu

Các phương pháp hay nhất của hàm Lambda

Dưới đây là một số phương pháp hay nhất về các hàm AWS Lambda:

  • Sử dụng đúng "thời gian chờ".
  • Sử dụng các chức năng của bộ nhớ cục bộ có kích thước 500MB trong thư mục / temp
  • Giảm thiểu việc sử dụng mã khởi động không liên quan trực tiếp đến việc xử lý sự kiện hiện tại.
  • Bạn nên sử dụng tính năng giám sát CloudWatch tích hợp trong các chức năng Lambda của mình để xem và tối ưu hóa độ trễ yêu cầu.

Khi nào không sử dụng AWS Lambda

Sau đây là những tình huống mà Lambda chắc chắn không phải là một lựa chọn lý tưởng:

  • Không thích hợp sử dụng các gói phần mềm AWS Lambda hoặc các ứng dụng dựa vào việc gọi các RPC cơ bản của Windows
  • Nếu được sử dụng cho các ứng dụng phần mềm tùy chỉnh có thỏa thuận cấp phép như xử lý tài liệu MS-Office, cơ sở dữ liệu Oracle, v.v.
  • AWS Lambda không nên được sử dụng cho quá trình phần cứng tùy chỉnh như tăng tốc GPU, mối quan hệ phần cứng.

Ưu điểm của việc sử dụng AWS Lambda

Dưới đây là những ưu / lợi ích của việc sử dụng AWS lambda:

  • AWS Lambda là một công cụ rất linh hoạt để sử dụng
  • Nó giúp bạn cấp quyền truy cập vào các tài nguyên, bao gồm cả VPC
  • Tác giả trực tiếp với trình soạn thảo WYSIWYG trong bảng điều khiển.
  • Bạn có thể sử dụng nó như một plugin cho Eclipse và Visual Studio.
  • Vì nó là kiến ​​trúc không máy chủ, bạn không cần phải lo lắng về việc quản lý hoặc cấp phép máy chủ.
  • Bạn không cần thiết lập bất kỳ Máy ảo nào.
  • Giúp các nhà phát triển chạy và thực thi phản hồi của mã đối với các sự kiện mà không cần xây dựng bất kỳ cơ sở hạ tầng nào.
  • Bạn chỉ cần tính toán thời gian thực hiện, chỉ khi mã của bạn chạy.
  • Bạn có thể theo dõi hiệu suất mã của mình trong thời gian thực thông qua CloudWatch.
  • Nó cho phép bạn chạy mã của mình mà không cần cấp phép hoặc quản lý bất kỳ máy chủ nào khác
  • Giúp bạn chỉ thực thi mã khi cần thiết
  • Bạn có thể mở rộng quy mô tự động để xử lý một vài yêu cầu mỗi ngày và thậm chí hỗ trợ hơn hàng nghìn yêu cầu mỗi giây.
  • AWS Lambda có thể được định cấu hình với sự trợ giúp của bộ hẹn giờ sự kiện bên ngoài để thực hiện các tác vụ đã lên lịch.
  • Hàm Lambda trong AWS nên được định cấu hình với sự kiện bên ngoài và bộ định thời; nó có thể được sử dụng để lập lịch trình.
  • Các hàm Lambda là không trạng thái để nó có thể được thay đổi tỷ lệ nhanh chóng.
  • AWS Lambda nhanh nên nó sẽ thực thi mã của bạn trong vòng mili giây.

Hạn chế của AWS Lambda

Dưới đây là những nhược điểm / nhược điểm của việc sử dụng AWS Lambda:

  • Công cụ AWS Lambda không thích hợp cho các dự án nhỏ.
  • AWS Lambda hoàn toàn dựa vào AWS cho cơ sở hạ tầng, vì vậy bạn không thể cài đặt bất kỳ phần mềm bổ sung nào nếu mã của bạn yêu cầu.
  • Thực hiện đồng thời được giới hạn ở 100
  • AWS Lambda hoàn toàn phụ thuộc vào AWS cho cơ sở hạ tầng; bạn không thể cài đặt bất kỳ phần mềm bổ sung nào nếu mã của bạn yêu cầu nó.
  • Dung lượng bộ nhớ của nó có thể thay đổi từ 128 đến 1536 MB.
  • Yêu cầu sự kiện không được vượt quá 128 KB.
  • Các chức năng của Lambda chỉ giúp bạn viết nhật ký của họ trong CloudWatch. Đây là công cụ duy nhất cho phép bạn theo dõi hoặc khắc phục sự cố các chức năng của mình.
  • Thời gian chờ thực thi mã của nó chỉ là 5 phút.

Tóm lược

  • Serverless là một thuật ngữ dùng để chỉ các ứng dụng không có máy chủ.
  • AWS Lambda là một trong những dịch vụ máy tính không máy chủ như vậy. Do đó, bạn không cần phải lo lắng về việc khởi chạy tài nguyên AWS nào hoặc họ sẽ quản lý chúng như thế nào.
  • Hàm là một chương trình hoặc một tập lệnh chạy trong AWS serverless Lambda.
  • Runtime cho phép các hàm bằng nhiều ngôn ngữ khác nhau chạy trên cùng một môi trường thực thi cơ sở.
  • Nguồn sự kiện là một dịch vụ AWS, chẳng hạn như Amazon SNS hoặc một dịch vụ tùy chỉnh.
  • Các lớp Lambda là một cơ chế phân phối quan trọng cho các thư viện, thời gian chạy tùy chỉnh và các phụ thuộc chức năng quan trọng khác.
  • Luồng nhật ký cho phép bạn chú thích mã chức năng của mình bằng các câu lệnh ghi nhật ký tùy chỉnh giúp bạn phân tích luồng thực thi và hiệu suất của các chức năng Lambda của mình.
  • AWS Lambda là Nền tảng như một dịch vụ (PaaS). Nó giúp bạn chạy và thực thi mã phụ trợ của mình.
  • AWS EC2 là Cơ sở hạ tầng dưới dạng Dịch vụ (laaS). Nó cung cấp tài nguyên máy tính ảo hóa.
  • Triển khai và quản lý các ứng dụng trên Đám mây AWS mà không cần lo lắng về cơ sở hạ tầng chạy các ứng dụng đó.
  • AWS Lambda được sử dụng để chạy và thực thi mã Back-end của bạn. Bạn không thể sử dụng nó để triển khai một ứng dụng.
  • AWS Lambda giúp bạn cho quy trình ETL.
  • Cách tốt nhất của hàm Lambda trong AWS là sử dụng đúng "thời gian chờ".
  • Không thích hợp sử dụng các gói phần mềm AWS Lambda hoặc các ứng dụng dựa vào việc gọi các RPC cơ bản của Windows
  • AWS Lambda là một công cụ có tính linh hoạt cao.
  • Công cụ AWS Lambda không thích hợp cho các dự án nhỏ.
  • Một sự kiện phổ biến sẽ được kích hoạt khi bạn sử dụng AWS Lambda là Chèn, cập nhật và xóa dữ liệu bảng Dynamo DB.