Hướng dẫn AWS Lambda: Hướng dẫn của bạn về Máy tính không máy chủ Amazon



Hướng dẫn AWS Lambda này mô tả Nền tảng máy tính không máy chủ của AWS bao gồm các chi tiết về chức năng Lambda, Nguồn sự kiện, Định giá Lambda với một trường hợp sử dụng.

Hướng dẫn AWS Lambda

Hôm nay chúng ta sẽ nói về AWS Lambda. AWS Lambda là một dịch vụ máy tính do Amazon cung cấp. Bạn phải tò mò vì có một số dịch vụ tính toán khác từ AWS, chẳng hạn như AWS EC2, AWS Elastic Beanstalk, AWS Opsworks, v.v., vậy tại sao lại có một dịch vụ tính toán khác? Trong hướng dẫn AWS Lambda này, bạn sẽ khám phá AWS Lambda là gì, tại sao nó được sử dụng và các trường hợp sử dụng bạn nên cân nhắc.

Hãy xem cách Amazon định nghĩa AWS Lambda và sau đó chúng ta sẽ đi sâu vào các khái niệm chính, hiểu một trường hợp sử dụng cuối cùng là thực hành.





Lambda Serverless computing - Hướng dẫn Lambda của aws

AWS Lambda là gì?

Amazon giải thích, AWS Lambda (& lambda) là một dịch vụ tính toán 'không máy chủ', có nghĩa là các nhà phát triển không 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ọ chỉ cần đặt mã trên lambda và nó chạy , nó đơn giản mà! Nó giúp bạn tập trung vào năng lực cốt lõi, tức là Xây dựng ứng dụng hoặc mã.



Tôi sẽ sử dụng AWS Lambda ở đâu?

AWS Lambda thực thi mã phụ trợ của bạn, bằng cách tự động quản lý các tài nguyên AWS. Khi chúng tôi nói 'quản lý', nó bao gồm khởi chạy hoặc kết thúc phiên bản, kiểm tra sức khỏe, tự động mở rộng quy mô, cập nhật hoặc vá các bản cập nhật mới, v.v.

Vì vậy, làm thế nào nó hoạt động?

Mã mà bạn muốn Lambda chạy được gọi là Hàm lambda . Bây giờ, như chúng ta biết một hàm chỉ chạy khi nó được gọi, phải không? Đây, Nguồn sự kiện là thực thể kích hoạt một Hàm Lambda và sau đó tác vụ được thực thi.

Hãy lấy một ví dụ để hiểu rõ ràng hơn.



Giả sử bạn có một ứng dụng để tải lên hình ảnh. Bây giờ khi bạn tải lên một hình ảnh, có rất nhiều tác vụ liên quan trước khi lưu trữ nó, chẳng hạn như thay đổi kích thước, áp dụng bộ lọc, nén, v.v.

Vì vậy, tác vụ tải lên hình ảnh này có thể được định nghĩa là Nguồn sự kiện hoặc ‘trigger’ sẽ gọi Hàm Lambda và sau đó tất cả các tác vụ này có thể được thực thi thông qua hàm Lambda.

Trong ví dụ này, nhà phát triển chỉ cần xác định nguồn sự kiện và tải mã lên.

Hãy hiểu ví dụ này với các tài nguyên AWS thực ngay bây giờ,

Hình. Trường hợp sử dụng Lambda với S3

Ở đây, chúng tôi sẽ tải các hình ảnh dưới dạng các đối tượng lên một thùng S3. Việc tải hình ảnh lên nhóm S3 sẽ trở thành nguồn sự kiện hoặc 'trình kích hoạt'.

Toàn bộ quy trình, như bạn có thể thấy trong sơ đồ, được chia thành 5 bước, chúng ta hãy hiểu từng bước trong số đó.

  1. Người dùng tải hình ảnh (đối tượng) lên nhóm nguồn trong S3 có thông báo đính kèm với nó, dành cho Lambda.
  2. S3 đọc thông báo và nó quyết định nơi gửi thông báo đó.
  3. S3 gửi thông báo đến Lambda, thông báo này hoạt động như một lệnh gọi hàm lambda.
  4. Vai trò thực thi trong Lambda có thể được xác định bằng cách sử dụng IAM (Quản lý nhận dạng và truy cập) để cấp quyền truy cập cho các tài nguyên AWS, ví dụ này ở đây sẽ là S3.
  5. Cuối cùng, nó gọi hàm lambda mong muốn hoạt động trên đối tượng đã được tải lên thùng S3.

Nếu bạn giải quyết tình huống này theo cách truyền thống, cùng với sự phát triển, bạn sẽ thuê những người quản lý các nhiệm vụ sau:

  • Kích thước, cung cấp và mở rộng quy mô nhóm máy chủ
  • Quản lý các bản cập nhật hệ điều hành
  • Áp dụng các bản vá bảo mật và
  • Giám sát tất cả cơ sở hạ tầng này để biết hiệu suất và tính khả dụng.

Đây sẽ là một nhiệm vụ tốn kém, tẻ nhạt và mệt mỏi, do đó nhu cầu về AWS Lambda là chính đáng.AWS Lambda tương thích với Node.JS, Python và Java, vì vậy bạn có thể tải lên tệp của mình ở dạng zip, xác định nguồn sự kiện và bạn đã sẵn sàng!

Bạn có thể đọc thêm về S3 AWS tại đây để hiểu sâu hơn.

Bây giờ chúng ta biết -Cách thức hoạt động của Lambda vàLambda làm gì S .

NỒ, hãy hiểu ...

  • Sử dụng Lambda ở đâu?
  • Lambda phục vụ mục đích gì,các dịch vụ AWS Compute khác không?

Nếu bạn định kiến ​​trúc một giải pháp cho một vấn đề, bạn sẽ có thể xác định nơi sử dụng Lambda, phải không?

Vì vậy, là một kiến ​​trúc sư, bạn có các tùy chọn sau để thực hiện một nhiệm vụ:

  • AWS EC2
  • AWS Elastic Beanstalk
  • AWS OpsWorks
  • AWS Lambda

Hãy lấy trường hợp sử dụng ở trên làm ví dụ và hiểu lý do tại sao chúng tôi chọn Lambda để giải quyết nó.

tạo một mảng các đối tượng java

AWS OpsWorks và AWS ElasticBeanstalk được sử dụng để triển khai ứng dụng, vì vậy trường hợp sử dụng của chúng tôi là không phải để tạo một ứng dụng , nhưng để thực thi mã back-end.

Vậy tại sao không phải là EC2?

Nếu bạn đang sử dụng EC2, bạn sẽ phải kiến ​​trúc mọi thứ, tức là bộ cân bằng tải, khối lượng EBS, ngăn xếp phần mềm, v.v. Trong lambda, bạn không phải lo lắng về bất cứ điều gì, chỉ cần chèn mã của bạn và AWS sẽ quản lý phần còn lại!

Ví dụ , trong EC2, bạn sẽ cài đặt các gói phần mềm trên máy ảo hỗ trợ mã của bạn, nhưng trong Lambda, bạn không phải lo lắng về bất kỳ máy ảo nào, chỉ cần chèn mã thuần túy và Lambda sẽ thực thi nó cho bạn.

Tuy nhiên, nếu mã của bạn sẽ chạy trong nhiều giờ và bạn mong đợi một luồng yêu cầu liên tục, bạn có thể nên sử dụng EC2, vì kiến ​​trúc của Lambda dành cho một loại khối lượng công việc rời rạc, trong đó sẽ có một số giờ yên tĩnh và một số đột biến trong không. trong số các yêu cầu.

Ví dụ , ghi nhật ký hoạt động email, ví dụ như một công ty nhỏ, sẽ thấy nhiều hoạt động hơn vào ban ngày so với ban đêm, cũng có thể có những ngày có ít email được xử lý hơn và đôi khi cả thế giới có thể bắt đầu gửi email cho bạn! Trong cả hai trường hợp, Lambda đều phục vụ bạn.

Xem xét trường hợp sử dụng này cho một công ty mạng xã hội lớn, nơi mà các email không bao giờ kết thúc vì nó có cơ sở người dùng khổng lồ, Lambda có thể không phải là lựa chọn phù hợp.

Bạn có thể đọc thêm về EC2 AWS tại đây để hiểu sâu hơn.

Hạn chế của AWS Lambda

Một số hạn chế dành riêng cho phần cứng và một số bị ràng buộc bởi kiến ​​trúc, hãy cùng thảo luận về tất cả chúng.

Giới hạn phần cứng bao gồm kích thước đĩa, được giới hạn ở 512 MB, bộ nhớ có thể thay đổi từ 128 MB đến 1536 MB. Sau đó, có một số khác, chẳng hạn như thời gian chờ thực thi có thể được tối đa hóa chỉ 5 phút, trọng tải nội dung yêu cầu của bạn không thể quá 6 MB và nội dung yêu cầu của bạn là 128 KB. Trọng tải của phần thân yêu cầu giống như dữ liệu mà bạn gửi với yêu cầu “GET” hoặc “PUT” trong HTTP, trong đó phần thân yêu cầu sẽ là loại yêu cầu, tiêu đề, v.v.

sự khác biệt giữa bigdata và hadoop

Trên thực tế, đây không phải là những giới hạn, mà là những ranh giới thiết kế đã được thiết lập trong kiến ​​trúc của Lambda, vì vậy nếu trường hợp sử dụng của bạn không phù hợp với những điều này, bạn luôn có các dịch vụ tính toán AWS khác tùy ý.

Chúng tôi đã thảo luận trong Hướng dẫn AWS Lambda này rằng cách thực hiện các công việc trong Lambda “không” tẻ nhạt và mệt mỏi. Bây giờ chúng ta hãy trang trải phần chi phí.

Định giá trong AWS Lambda

Giống như hầu hết các dịch vụ AWS, AWS Lambda cũng là dịch vụ trả tiền cho mỗi lần sử dụng, có nghĩa là bạn chỉ trả tiền cho những gì bạn sử dụng, do đó bạn bị tính phí theo các thông số sau

  • Số lượng yêu cầu mà bạn thực hiện cho hàm lambda của mình
  • Các thời hạn mà mã của bạn thực thi.

Yêu cầu

  • Bạn bị tính phí cho số lượng yêu cầu mà bạn thực hiện trên tất cả các hàm lambda của mình.
  • AWS Lambda đếm một yêu cầu mỗi khi nó bắt đầu thực thi để phản hồi nguồn sự kiện hoặc lệnh gọi, bao gồm cả kiểm tra được gọi từ bảng điều khiển. Hãy xem giá bây giờ:
    • 1 triệu yêu cầu đầu tiên, mỗi tháng miễn phí.
    • 0,20 đô la mỗi triệu yêu cầu sau đó.

Thời lượng

  • Khoảng thời gian được tính từ thời điểm mã của bạn bắt đầu thực thi cho đến khi nó trả về hoặc kết thúc, nó được làm tròn đến 100ms gần nhất.
  • Giá phụ thuộc vào dung lượng bộ nhớ bạn phân bổ cho chức năng của mình, bạn bị tính phí $ 0,00001667 cho mỗi GB-giây được sử dụng.

* Nguồn: Trang web chính thức của AWS

Nếu bạn đã đến được đây, bạn đã sẵn sàng để được Thực hành ở Lambda. Hãy vui vẻ!

Thực hành: AWS Lambda DIY

Hãy tạo một hàm Lambda sẽ ghi lại “Một đối tượng đã được thêm vào” sau khi bạn thêm một đối tượng vào một nhóm cụ thể trong S3.

Bước 1: Từ Bảng điều khiển quản lý AWS trong phần tính toán, hãy chọn AWS Lambda.

Bước 2: Trên Bảng điều khiển AWS Lambda, nhấp vào “Tạo hàm Lambda”.

Bước 3: Trên trang tiếp theo, bạn phải chọn một bản thiết kế. Ví dụ, chúng tôi sẽ chọn chức năng trống cho trường hợp sử dụng của chúng tôi.

Bước 4: Trên trang tiếp theo, bạn sẽ (1) thiết lập trình kích hoạt, vì chúng ta sẽ làm việc trên S3, (2) chọn trình kích hoạt S3 và sau đó (3) nhấp vào Tiếp theo.

Bước 5: Trên trang cấu hình, hãy điền thông tin chi tiết. Bạn có thể đặt mã của riêng mình hoặc bạn có thể sao chép cùng một mã từ trường hợp sử dụng này. Sau đó, điền vào trình xử lý và vai trò, để nguyên cài đặt nâng cao, cuối cùng nhấp vào tiếp theo.

Bước 6: Trên trang tiếp theo, hãy xem lại tất cả thông tin và nhấp vào “Tạo chức năng”.

Bước 7: Bây giờ, vì chúng tôi đã tạo chức năng cho nhóm S3, nên thời điểm bạn thêm tệp vào nhóm S3 của mình, bạn sẽ nhận được nhật ký cho nhóm này trong CloudWatch, là một dịch vụ giám sát từ AWS.

Xin chúc mừng!Bạn đã thực hiện thành công Hàm Lambda.

Tôi hy vọng bạn thích thú khi tìm hiểu sâu về Hướng dẫn AWS Lambda. Đây là một trong những lĩnh vực kiến ​​thức được mong muốn nhất trong hệ sinh thái AWS cho các vị trí công việc như Kiến trúc sư giải pháp, Kỹ sư đám mây, Kỹ sư DevOps. Đây là bộ sưu tập của để giúp bạn chuẩn bị cho cuộc phỏng vấn xin việc AWS tiếp theo.

Nếu bạn thấy Hướng dẫn AWS Lambda này có liên quan, bạn có thể xem khóa học trực tiếp và có người hướng dẫn của Edureka trên , được đồng tạo bởi những người hoạt động trong ngành.

Có một câu hỏi cho chúng tôi? Vui lòng đề cập đến nó trong phần bình luận và chúng tôi sẽ liên hệ lại với bạn.