Giới thiệu về các trình kích hoạt có sẵn để gọi một hàm Lambda

Gioi Thieu Ve Cac Trinh Kich Hoat Co San De Goi Mot Ham Lambda



AWS Lambda là một dịch vụ dựa trên đám mây tuyệt vời đã cách mạng hóa thế giới không máy chủ. Nó thực sự là một phần mềm như một dịch vụ (SaaS) có thể được thiết lập dễ dàng và nhanh chóng và rất hữu ích để giảm ngân sách tổng thể cho cơ sở hạ tầng đám mây của bạn. Những gì bạn phải làm chỉ là thiết kế mã của bạn và chạy nó bằng cách sử dụng hàm lambda.

Bây giờ, vấn đề ở đây là cách bạn phải thực thi mã của mình trong hàm và câu trả lời cho điều này là có một danh sách dài các phương thức mà qua đó bạn có thể gọi hoặc kích hoạt các hàm lambda của mình. Điều này bao gồm nhiều dịch vụ AWS khác có thể được sử dụng để gọi chức năng mong muốn khi được yêu cầu.

Trong bài viết này, bạn sẽ thấy giải thích ngắn gọn về các dịch vụ và kỹ thuật có thể được áp dụng để gọi các hàm lambda của bạn trong Amazon.







Các loại lời mời

Trước khi đi sâu hơn, chúng ta hãy thảo luận về hai loại lệnh gọi chính sau đây mà hàm lambda có thể xử lý.



  • Lời mời đồng bộ
  • Lời mời không đồng bộ
  1. Lời mời đồng bộ
    Trong các lệnh gọi đồng bộ, dịch vụ gọi lambda phải đợi cho đến khi kết quả được trả về cho nó và sau đó tiếp tục phần còn lại của quá trình. Chúng ta cũng có thể nói rằng đầu ra của hàm lambda được yêu cầu bởi chính hàm hoặc dịch vụ đã gọi lambda này.
  2. Lời mời không đồng bộ

    Ở đây, không cần đợi các hàm lambda cung cấp kết quả trở lại invoker. Điều này chủ yếu được sử dụng cho các thông báo hoặc để kích hoạt một số sự kiện độc lập khác trong AWS. Dịch vụ muốn gọi hàm lambda chỉ cần gửi trình kích hoạt và thao tác đó được xếp hàng đợi trong lambda và sẽ được thực hiện theo lượt của nó.



Các cách khác nhau để mời Lambda

Ở đây, bạn sẽ thấy nhiều cách để gọi các hàm lambda. Biết được điều này sẽ rất hữu ích cho bạn vào lần tiếp theo khi bạn thiết kế cơ sở hạ tầng AWS đơn giản nhưng tiết kiệm chi phí của mình.





Gọi trực tiếp các hàm Lambda

Trong hầu hết các trường hợp, các hàm lambda được thiết kế để được kích hoạt bằng các dịch vụ khác, nhưng bạn có thể gọi chúng trực tiếp bằng bảng điều khiển quản lý AWS, AWS CLI và thông qua URL hàm.

Mời Lambda từ Bảng điều khiển quản lý

Khi bạn tạo bất kỳ hàm lambda nào trong bảng điều khiển AWS của mình, bạn có thể dễ dàng kích hoạt nó bằng cách sử dụng tùy chọn chạy thử nghiệm trong bảng điều khiển. Các Bài kiểm tra có sẵn trong phần mã của hàm lambda.



Bạn có thể tạo sự kiện tùy chỉnh cũng như sử dụng bảng điều khiển với mẫu sự kiện tùy chỉnh của mình.

Bằng cách này, hàm lambda có thể được kích hoạt từ bảng điều khiển AWS.

AWS CLI

AWS cung cấp cho bạn khả năng sử dụng tất cả các tài nguyên của nó bằng giao diện dòng lệnh AWS. Bất kỳ hàm lambda nào cũng có thể được gọi với CLI này. Điều này có thể rất hiệu quả để kiểm tra mọi thứ trong các giai đoạn phát triển. Sau lệnh AWS CLI có thể được sử dụng như một trình kích hoạt để gọi hàm lambda.

[email được bảo vệ] : ~ $ aws lambda gọi \
--Tên chức năng < Nhập tên hàm Lambda > \
--khối hàng < Giá trị đầu vào Hàm Lambda > \
--cli-binary-format < base64 | raw-in-base64-out > < Tên tệp xuất ra >

Chức năng được kích hoạt thành công và bạn cũng có thể quan sát điều này trong đầu ra.

URL chức năng

Hàm URL thực sự là một điểm cuối HTTP mà bạn có thể định cấu hình cho các hàm lambda của mình. URL này có thể được sử dụng để kích hoạt các hàm lambda và bạn cũng có thể chia sẻ URL này với những người dùng khác ngay cả bên ngoài tài khoản AWS của bạn để gọi các hàm lambda. Mặc dù bạn nên cẩn thận với các URL hàm, bất kỳ ai có liên kết này đều có thể kích hoạt hàm lambda của bạn vô số lần và tất cả các chi phí sẽ phải trả cho bạn.

Một URL hàm có thể được định cấu hình trong khi tạo cũng như sau khi tạo hàm lambda. Đối với điều này, chỉ cần đi tới cài đặt nâng cao trong phần cấu hình và kiểm tra Bật URL chức năng hộp.

Trong trường hợp bạn chưa đính kèm URL hàm khi tạo hàm lambda, bạn có thể thực hiện sau. Đối với điều này, bạn phải chuyển đến tab cấu hình, chọn URL chức năng và nhấp vào Tạo URL chức năng .

Bằng cách này, URL hàm được tạo và sử dụng để gọi hàm lambda.

Gọi các hàm Lambda bằng các dịch vụ AWS

Rất nhiều dịch vụ AWS có thể được định cấu hình như một trình kích hoạt để gọi hàm lambda. Bạn chỉ cần định cấu hình các dịch vụ AWS làm trình kích hoạt để gọi hàm lambda. Ở đây, chúng tôi đi qua tất cả các dịch vụ này với giải thích về cách sử dụng chúng làm trình kích hoạt lambda của bạn.

Cổng API

Đây là một dịch vụ AWS được sử dụng rộng rãi để tạo và quản lý các API trong mô hình ứng dụng của bạn. Các API cung cấp một cách rất linh hoạt để tạo ra các yêu cầu hoặc cuộc gọi từ một gói phần mềm này sang một gói phần mềm khác mà chúng tôi không thể hiển thị trực tiếp và chỉ muốn lưu lại hậu trường.

Để thêm bất kỳ dịch vụ nào làm trình kích hoạt vào hàm lambda của bạn, chỉ cần đi tới hàm lambda và nhấp vào thêm trình kích hoạt.

Tiếp theo, bạn có thể chọn dịch vụ mà bạn muốn đính kèm làm trình kích hoạt cho hàm lambda của mình. Đối với phần này, chúng tôi chọn cổng API làm trình kích hoạt cho hàm lambda.

Tiếp theo, định cấu hình dịch vụ như bạn muốn nó hoạt động trong cấu trúc ứng dụng của bạn.

Có hai loại API được cổng API hỗ trợ và chúng có thể được sử dụng để gọi một hàm lambda.

API HTTP : Chúng được sử dụng để tạo các điểm cuối HTTP được chuyển đến các hàm lambda của bạn. Các API HTTP cung cấp ít chức năng hơn và sử dụng ít tốn kém hơn.

API REST : Nếu bạn muốn có nhiều tính năng hơn trong API của mình, bạn phải sử dụng API REST. Các API này có thể gọi hàm lambda và sử dụng các phương thức HTTP giống nhau, mang lại tính linh hoạt và độc lập hơn.

Nhóm S3

Có rất nhiều trường hợp sử dụng mà bạn sẽ thấy rằng các thùng S3 đang hoạt động như một trình kích hoạt để gọi hàm lambda. Bạn có thể định cấu hình một thùng S3 để kích hoạt chức năng lambda cho một sự kiện S3 cụ thể.

Ví dụ: bạn muốn thu thập siêu dữ liệu của bất kỳ tệp nào khi tệp đó được tải lên nhóm của bạn. Đối với điều này, bạn phát triển một mã và triển khai nó trên hàm lambda. Đối với trình kích hoạt Lambda, hãy chọn nhóm S3. Đối với loại sự kiện, hãy chọn đặt đối tượng . Vì vậy, bất cứ khi nào một tệp mới được thêm vào nhóm, hàm lambda được kích hoạt và siêu dữ liệu của đối tượng được thu thập và lưu trữ ở vị trí đích khi bạn chỉ định.

Có thể có nhiều trường hợp khác trong đó S3 có thể được sử dụng làm trình kích hoạt để gọi hàm lambda.

Cân bằng tải

Giả sử ứng dụng của bạn được thiết kế để chạy trên các hàm lambda vì hàm lambda là giải pháp tiết kiệm chi phí nhất cho một ứng dụng dựa trên đám mây đơn giản. Bây giờ, để hiển thị ứng dụng của bạn cho người dùng cuối, bạn có thể muốn đính kèm một bộ cân bằng tải ở phía trước nó. Đối với phần này, hãy chọn bộ cân bằng tải hoạt động như bộ kích hoạt để gọi hàm lambda. Hãy nhớ rằng bạn chỉ có thể thiết lập bộ cân bằng tải ứng dụng cho tác vụ này vì các bộ cân bằng tải khác không được các hàm lambda hỗ trợ.

Để thêm bộ cân bằng tải ứng dụng vào hàm lambda, trước tiên bạn cần tạo một nhóm mục tiêu và hàm lambda được thêm vào nhóm mục tiêu đó. Bây giờ, nhóm mục tiêu mới được tạo có thể được thêm vào trình lắng nghe của trình cân bằng tải ứng dụng.

CloudFront

Amazon CloudFront thực sự là một CDN (Mạng phân phối nội dung) và được sử dụng để lưu vào bộ đệm dữ liệu ứng dụng tại các vị trí gần với người dùng cuối hơn nhiều so với các máy chủ ứng dụng thực tế. Sử dụng CloudFront, bạn thực sự có thể cải thiện thời gian phản hồi để cung cấp nội dung tĩnh cho người dùng cuối trên toàn cầu.

Các chức năng lambda có thể được kích hoạt bằng cách sử dụng dịch vụ CloudFront. Đối với điều này, bạn cần triển khai hàm lambda của mình trên các vị trí cạnh trên toàn cầu được gọi là [email được bảo vệ]

Bạn có thể đặt CloudFront làm trình kích hoạt để gửi các yêu cầu đến [email được bảo vệ] thông qua CloudFront để cải thiện thời gian phản hồi. Như [email được bảo vệ] được triển khai trên tất cả các vị trí cạnh trên toàn cầu, người dùng cuối phải đối mặt với thời gian phản hồi tối thiểu bằng cách truy cập lambda được triển khai vị trí cạnh gần nhất.

Để định cấu hình điều này, chỉ cần truy cập thêm trình kích hoạt và chọn dịch vụ CloudFront. Ở đó, bạn sẽ thấy triển khai đến [email được bảo vệ] quyền mua.

Bây giờ, bạn chỉ cần hoàn thành các bước cấu hình và bắt đầu.

Nhật ký CloudWatch

Bất cứ khi nào bạn nghĩ về việc giám sát trong đám mây AWS, điều đầu tiên bạn nghĩ đến là CLoudWatch vì đây là một dịch vụ giám sát rất rộng lớn có thể được định cấu hình cho các dịch vụ khác nhau theo cách rất hữu ích.

Nhật ký CloudWatch, như tên định nghĩa, là một dịch vụ ghi nhật ký có thể được sử dụng để lưu trữ tất cả các loại nhật ký. Bạn có thể tạo các nhóm nhật ký khác nhau cho các dịch vụ khác nhau để giữ các nhật ký riêng biệt. Các bản ghi này có thể được sử dụng để kích hoạt hàm lambda của bạn dựa trên các sự kiện mà chúng đang nhận, bất kể dịch vụ hoặc thủ tục tạo ra các sự kiện này.

Bạn có thể định cấu hình trình kích hoạt từ bảng điều khiển chức năng lambda hoặc trực tiếp từ nhật ký CloudWatch. Để thực hiện việc này từ bảng điều khiển CloudWatch, chỉ cần truy cập dịch vụ CloudWatch và mở các nhóm nhật ký. Ở đây, bạn phải tạo một bộ lọc đăng ký lambda.

Tiếp theo, chọn hàm lambda mà bạn muốn và bạn có thể sử dụng.

Bây giờ, bất cứ khi nào CloudWatch nhận được luồng nhật ký đó, nó sẽ hoạt động như một trình kích hoạt để gọi hàm lambda.

EventBridge

Amazon EventBridge (trước đây được gọi là CloudWatch Events) là một dịch vụ AWS cho phép bạn tạo các quy tắc sự kiện để kích hoạt một dịch vụ AWS cụ thể trên một sự kiện cụ thể xảy ra trong tài khoản AWS.

Có rất nhiều quy tắc mà bạn có thể đặt cho các dịch vụ AWS (như tạo phiên bản EC2 hoặc các sự kiện cơ sở dữ liệu RDS) cũng như các dịch vụ của bên thứ ba (chẳng hạn như sự kiện đẩy GitHub). Các quy tắc này có thể được liên kết thêm với các dịch vụ khác như các hàm lambda theo cách mà bất cứ khi nào quy tắc này được thỏa mãn, nó sẽ gọi hàm lambda.

Nếu bạn đã đặt quy tắc EventBridge, bạn có thể dễ dàng thêm quy tắc này làm trình kích hoạt cho hàm lambda của mình. Chọn EventBridge làm trình kích hoạt của bạn và chỉ cần cung cấp tên của quy tắc.

Quy tắc hiện tại được thêm vào đây dưới dạng trình kích hoạt, nhưng bạn cũng có thể tạo quy tắc tại thời điểm này.

DynamoDB

Bạn có thể đã biết rằng DynamoDB chỉ là một cơ sở dữ liệu NoSQL và nó xuất hiện như một dịch vụ hoàn toàn riêng biệt trong AWS. Đây là một cơ sở dữ liệu không máy chủ được cấu hình đầy đủ và bạn có thể trực tiếp bắt đầu tạo các bảng trong đó. Các bảng DynamoDB này có thể được cấu hình để hoạt động như các trình kích hoạt để gọi các hàm lambda.

Dữ liệu từ DynamoDB có thể được tải vào lambda dưới dạng đầu vào dưới dạng lô và nó được xử lý bằng cách sử dụng mã được triển khai trong lambda.

Kinesis

Nếu bạn muốn thu thập và phân tích dữ liệu thời gian thực với tỷ lệ cao, bạn có thể hưởng lợi từ AWS Kinesis. Giả sử bạn muốn xử lý dữ liệu được thu thập bởi các luồng dữ liệu Kinesis bằng cách sử dụng các hàm lambda. Bạn chỉ cần kích hoạt hàm lambda của mình mỗi khi dữ liệu được ghi lại bởi Kinesis.

Bạn vừa hoàn tất việc định cấu hình luồng dữ liệu Kinesis của mình để gọi hàm lambda.

SNS

Nó chỉ đơn giản là một dịch vụ thông báo thường được sử dụng để gửi thông báo từ dịch vụ AWS này sang dịch vụ AWS khác vì đôi khi không có cách nào để định cấu hình thông báo trực tiếp từ dịch vụ này sang dịch vụ khác. Các hàm lambda có thể được kích hoạt bằng cách sử dụng dịch vụ này.

Trước tiên, hãy tạo một chủ đề SNS, sau đó sử dụng nó để gọi hàm lambda của bạn.

Bạn phải chọn tên chủ đề SNS của mình. Không có cấu hình hoặc cài đặt nào khác.

Sự kết luận

Amazon Lambda thực sự là một bước đột phá trong kiến ​​trúc đám mây. Việc phát triển và triển khai ứng dụng chưa bao giờ dễ dàng và đơn giản như vậy trước đây. Nó cho phép bạn chỉ cần tạo mã của mình trong bất kỳ khuôn khổ chung nào và tải mã của bạn lên lambda và nó sẽ được thực thi. Có một danh sách dài các dịch vụ khác có thể được kết hợp với AWS lambda và hoạt động như một trình kích hoạt để chỉ gọi hàm lambda của bạn khi nó được yêu cầu. Không có chi phí chạy liên tục của máy chủ, nhưng bạn sẽ bị tính phí tùy thuộc vào số lần kích hoạt và thời gian thực thi mã.