Giới thiệu dịch vụ AWS Lambda và cách cấu hình cho người mới bắt đầu

AWS Lambda là dịch vụ giám sát serverless ( serverless compute ) của Amazon Web Services ( AWS ). AWS Lambda hoạt động giải trí dựa theo FaaS ( Function-as-a-service ) Mã Sản Phẩm. Với dịch vụ AWS Lambda, người dùng, đặc biệt quan trọng là developer, sẽ không phải lo ngại về việc quản trị và cung ứng hạ tầng ( zero administration ) mà chỉ cần tập trung chuyên sâu vào việc kiến thiết xây dựng những ứng dụng !

Chỉ việc tải code lên AWS Lambda, dịch vụ này sẽ run code, scale về hạ tầng để luôn bảo vệ về hiệu suất cũng như tính sẵn sàng chuẩn bị của ứng dụng .

Code chạy trên AWS Lambda được gọi là lambda function. Hiện tại, lambda function hỗ trợ các ngôn ngữ lập trình sau:

  • Java
  • Python
  • C#
  • Node.js
  • Go
  • PowerShell
  • Ruby

Function cũng cung cấp runtime API, có thể sử dụng để chạy các function được viết bởi các ngôn ngữ lập trình native khác.

deep-dive-on-aws-lambda-vti-cloud

Để thao tác với AWS Lambda, chỉ có một điều kiện kèm theo tiên quyết ; bạn phải có thông tin tài khoản trên AWS từ đó bạn hoàn toàn có thể truy vấn bảng điều khiển và tinh chỉnh quản trị AWS .

Cùng tìm hiểu thêm hướng dẫn tạo thông tin tài khoản và sử dụng AWS Free Tier để thưởng thức dịch vụ AWS Lambda tại đây : https://final-blade.com/trai-nghiem-dien-toan-dam-may-voi-tai-khoan-aws-free-tier/

Tính năng của AWS Lambda

Dưới đây là một số ít tính năng quan trọng của AWS Lambda mà VTI Cloud tóm tắt :

  • AWS Lambda thuận tiện scale hạ tầng mà không cần bất kể thông số kỹ thuật bổ trợ nào. Dịch Vụ Thương Mại này giúp những developer giảm việc làm quản lý và vận hành tương quan tới hạ tầng mạng lưới hệ thống.
  • Dịch Vụ Thương Mại cung ứng nhiều tùy chọn như dịch vụ Amazon S3, Amazon CloudWatch, Amazon DynamoDB, Amazon API Gateway, Amazon Kinesis, Amazon CodeCommit và nhiều tùy chọn khác để trigger sự kiện.
  • Không nhu yếu ngân sách trả trước ( upfront ). Bạn chỉ trả tiền cho bộ nhớ được sử dụng bởi lambda function và ngân sách tối thiểu cho số lượng request do đó AWS Lambda khá tiết kiệm ngân sách và chi phí ngân sách cho người dùng.
  • AWS Lambda sử dụng AWS IAM để xác lập tổng thể những vai trò và chủ trương bảo mật thông tin do bảo vệ tính bảo mật thông tin cho ứng dụng của người dùng.
  • AWS Lambda cũng cung ứng năng lực chịu lỗi ( fault tolerance ) cho những services run code và function. Người dùng sẽ không cần lo về downtime của ứng dụng.

Một số use case thường gặp của AWS Lambda

Dưới đây là 1 số ít use case mà dịch vụ AWS Lambda đã giúp người sử dụng xử lý triệt để những yếu tố thường gặp :

1. HTTP API

Bằng việc sử dụng AWS Lambda, bạn hoàn toàn có thể tích hợp hoặc tiến hành backend logic lên đám mây và invoke những function khi cẩn thiết chỉ bằng việc gọi HTTP .Khi tích hợp Amazon API Gateway với AWS Lambda, không những giảm thiểu được ngân sách ( VTI Cloud sẽ nói kỹ hơn trong phần tiếp theo ) mà người dùng còn giảm thiểu được công sức của con người quản lý và vận hành những server cũng như lan rộng ra những dịch vụ .

2. Xử lý dữ liệu

Ví dụ ứng dụng giải quyết và xử lý nhiều tài liệu được tàng trữ trong Amazon DynamoDB, bạn hoàn toàn có thể trigger Lambda function bất kể khi nào bạn viết, update hoặc xóa những mục trong bảng đó .Những sự kiện này trigger những lambda function sẽ giải quyết và xử lý, nghiên cứu và phân tích và hoàn toàn có thể đẩy tài liệu này sang những dịch vụ AWS khác như Amazon S3 để tàng trữ hiệu quả …Nói cách khác – người dùng hoàn toàn có thể tạo hàng loạt quy trình tiến độ giải quyết và xử lý tài liệu bằng cách tích hợp những tài nguyên AWS khác nhau với dịch vụ AWS Lambda .

aws lambda processing data

3. Xử lý tệp tin thời gian thực

Thông thường các ứng dụng CMS về quản lý content luôn có chức năng upload hình ảnh. Hình ảnh này sẽ được lưu trên Amazon S3 bucket. Lúc này, AWS Lambda có thể được dùng để tạo một task tự động.

Ví dụ sau khi upload hình lên sẽ trigger tạo ra một version khác của hình với độ phân giải thấp hơn (thumbnails) và được tại một bucket khác.

AWS Lambda sẽ giúp ứng dụng tự động hóa trong việc gọi logic theo nhu yếu và chỉ khi thực sự thiết yếu. Tham khảo : GitHub – aws-samples / lambda-refarch-fileprocessing : Serverless Reference Architecture for Real-time File Processing

4. Xử lý luồng thời gian thực

Với những ứng dụng có traffic “ khủng ”, mạng lưới hệ thống thường sử dụng dịch vụ AWS Lambda và Amazon Kinesis Stream để giải quyết và xử lý những tài liệu streaming real-time để ứng dụng tracking những hoạt động giải trí ( application activity tracking ), hay những điều tra và nghiên cứu real-time những tài liệu khác nhau từ những metrics collect từ nhiều data source như Website clickstream, Payment transactions, Social truyền thông timeline, IT logs hay Location based tracking .

real time processing data with aws lambda

Chi phí khi sử dụng dịch vụ AWS Lambda

Với AWS Lambda, bạn chỉ phải trả tiền cho những gì bạn sử dụng. Bạn bị tính phí dựa trên số lượng request cho các function và duration, thời gian thực thi code.

Duration được tính từ khi code được thực thi tới khi thực thi xong hoặc terminate, được làm tròn tới 1 ms gần nhất. Ngân sách chi tiêu sẽ dựa vào dung tích bố nhớ phân chia cho function .

AWS Lambda free usage tier bao gồm 1M requests miễn phí và 400,000 GB-giây thời gian tính toán mỗi tháng. Dưới đây là bảng giá cho region Asia Pacific (Singapore) của dịch vụ này.

lambda pricing

Bạn hoàn toàn có thể xem thêm về cách tính giá của AWS Lambda tại đây : https://aws.amazon.com/lambda/pricing

Cách hoạt động của AWS Lambda?

aws lambda features

Để tóm tắt cách hoạt động giải trí của AWS Lambda, VTI Cloud tổng hợp thành 02 quy trình chính :

  1. Đầu tiên, bạn tạo một function và thêm thông tin cơ bản vào dịch vụ, ví dụ điển hình như ngôn từ lập trình được sử dụng trong function.
  2. Sau đó, bạn viết code của mình trên trình soạn thảo lambda hoặc upload source code trong một tệp zip. Khi code lambda được tải lên, dịch vụ sẽ giải quyết và xử lý toàn bộ việc lan rộng ra dung tích, vá lỗi và quản trị hạ tầng.

Cùng khám phá sâu hơn nào …

Bước 1: Cách tạo một AWS Lambda Function

VTI Cloud sẽ ví dụ tạo một game show đơn thuần bằng cách sử dụng lambda function trong Node. js cho bài viết này .

  • Đi tới bảng AWS Management Console, và trong thanh tìm kiếm, gõ Lambda, nhấp vào dịch vụ Lambda.

aws lambda in management console

  • Cửa sổ Function sẽ được mở, chọn Create Function.

create function aws lambda

  • Bạn sẽ nhận được các tùy chọn khác nhau để tạo một function với phần giải thích của chúng. Vì tôi đang tạo nó từ đầu, tôi sẽ chọn Author from Scratch.

create function 1

  • Sau đó, bạn cần điền 1 số ít thông tin thiết yếu cho lambda function này. Nhập tên tính năng và chọn phiên bản Node. js mà bạn muốn sử dụng cho tính năng này.

Có 04 phương pháp khi tạo function:

  • Author from scratch – Bắt đầu từ một câu lệnh đơn giản nhưprint('Hello, world!').

  • Use a blueprint – Cho phép bạn xây dựng một lambda function bằng cách sử dụng “blueprint”. Blueprint trong ngữ cảnh này có nghĩa là một đoạn mã đã được viết sẵn (chỉ dành cho NodeJs và Python) cho các trường hợp sử dụng phổ biến, chẳng hạn như ghi log các bản cập nhật được thực hiện cho bảng DynamoDB hoặc kích hoạt một chức năng khi một thứ gì đó được upload lên S3 bucket.

  • Container image – Sử dụng container image có sẵn để deploy function, sử dụng phương thức này để tận dụng các container image từ dự án trước để tiết kiệm thời gian tạo mới.

  • Browse serverless app repository – Cho phép bạn triển khai toàn bộ ứng dụng mẫu từ AWS Serverless Application Repository. Các package này có thể được cung cấp bởi AWS hoặc bởi cộng đồng.

Lưu ý: AWS Lambda không phải là một dịch vụ global!

Điều này có nghĩa là bạn phải biến hóa region về nơi bạn muốn tiến hành Lambda function ( tùy theo nhu yếu dự án Bất Động Sản ) .

region for aws lambda

  • Bạn cũng cần chọn một vai trò thực thi (execution role). VTI Cloud sẽ chọn chọn tạo tùy chọn role mới (bài viết tạo role để người mới nắm được). Sau đó, bấm vào Create Function.

create role aws lambda

  • Lưu ý là tùy theo nhu cầu tạo function trong VPC vụ thể mà có thể tùy chỉnh trong phần Advanced Settings

advanced setting create function

  • Bạn sẽ nhận được thông tin thành công xuất sắc rằng chú thích đã được tạo. Nhấp vào hành lang cửa số Designer để thu nhỏ nó.

successfully create function lambda

Bước 2: Upload code lên AWS Lambda Function

  • Bên dưới là hành lang cửa số Function code. Tại đây sẽ là nơi bạn upload code của mình, hoàn toàn có thể code thẳng vô hành lang cửa số này ( gọi là AWS internal code editor ), hoặc upload dạng file zip.

upload from zip or s3

  • Ở đây VTI Cloud đang ví dụ code của trò chơi “Đổ xí ngầu” hay “Xúc xắc”.

function code windows

  • Bây giờ hãy nhấp vào nút Test ở góc trên cùng bên phải. Bạn sẽ nhận được một cửa sổ bật lên để cấu hình test event, nhập tên event và nhấp vào Create.

configure test event

  • Bấm Test để chạy thử code > Kết quả ra “5”.
  • Kéo lên phía trên sẽ có thông tin cụ thể về execution test này. Các thông tin chi tiết như request-id, duration, billed duration, resources configured… với log output có sẵn.

execution details

  • Trong tab Monitoring sẽ track lại được log và những thông số kỹ thuật tài nguyên của dịch vụ AWS Lambda đã sử dụng, có thêm cả Logs Insights tạo ra bởi dịch vụ Amazon CloudWatch.

Bạn hoàn toàn có thể xem lại bài viết cơ bản về dịch vụ Amazon CloudWatch tại đây : Định nghĩa cơ bản về Amazon CloudWatch | VTI CLOUD

monitor aws lambda function

cloudwatch logs insight

  • Nếu bạn vào bên trong log do CloudWatch tạo, bạn hoàn toàn có thể xem cụ thể những gì đã xảy ra khi chạy lambda function, được CloudWatch theo dõi.

cloudwatch logs insights aws lambda function

Cách cấu hình AWS Lambda với dịch vụ khác của AWS

Để chạy code trong AWS Lambda, bạn cần kích hoạt lambda function với một dịch vụ AWS bên ngoài, dịch vụ này hoàn toàn có thể gọi lambda function. Ví dụ, dịch vụ hoàn toàn có thể là một S3 bucket .

  • Trong vòng vài mili-giây, lambda sẽ chuẩn bị sẵn sàng tự động hóa kích hoạt tính năng của bạn khi một sự kiện xảy ra. AWS Lambda chạy code của bạn khi sự kiện kích hoạt được gọi. dịch vụ cung ứng quản trị và giám sát những sever cho bạn.
  • Nếu function của bạn nhu yếu nhiều sức mạnh giải quyết và xử lý, dịch vụ sẽ chọn loại phiên bản có nhiều sức mạnh giải quyết và xử lý hơn và RAM, hoặc nếu code lambda của bạn chỉ thực thi trong hai giây, dịch vụ sẽ chọn phiên bản thấp nhất hoàn toàn có thể, giúp tiết kiệm ngân sách và chi phí tiền và thời hạn của bạn.

Ở bài viết này, VTI Cloud sẽ hướng dẫn cách thêm API Gateway trigger với Lambda function .

aws lambda trigger api gateway

  • Tương tự như cách tạo function đã hướng dẫn ở trên, tại đây VTI Cloud tạo một function có tên trigger-with-api-gateway để demo.

  • Nhấp chuột vào Add trigger chọn API Gateway và tạo mới API.

aws lambda trigger api gateway 1

aws lambda trigger api gateway 2

  • Bạn có thể lựa chọn giữa HTTP APIREST API. Sau đó điền thông tin theo mặc định. Trong phần additional settings có thể chọn thêm các tùy chọn bổ sung.

    • Enable CORS in HTTP API : Configuring CORS for an HTTP API – Amazon API Gateway
    • Enable CORS in REST API : Enabling CORS for a REST API resource – Amazon API Gateway

aws lambda trigger api gateway 2.1

  • Sau khi hoàn tất, nhấp chuột vào Add

aws lambda trigger api gateway 3

>> API Endpoint sẽ có giá trị theo form sau: https://RANDOM_STUFF.execute-api.REGION-NAME.amazonaws.com/default/MY_FUNCTION_NAME

Vậy là xong! Thật đơn giản phải không?

Kết luận

Với một developer, việc tiết kiệm chi phí thời hạn để quản trị và quản lý và vận hành mạng lưới hệ thống hạ tầng bảo vệ cho ứng dụng của bạn hoàn toàn có thể scale, chuẩn bị sẵn sàng cao quả thật rất quý báu. Dịch Vụ Thương Mại serverless AWS Lambda giúp cho những developer chỉ cần tập trung chuyên sâu tăng trưởng ứng dụng mà không cần phải chăm sóc tới hạ tầng chạy code của họ !

Về VTI Cloud

VTI Cloud là Đối tác cấp cao (Advanced Consulting Partner) của AWS, với đội ngũ hơn 50+ kỹ sư về giải pháp được chứng nhận bởi AWS. Với mong muốn hỗ trợ khách hàng trong hành trình chuyển đổi số và dịch chuyển lên đám mây AWS, VTI Cloud tự hào là đơn vị tiên phong trong việc tư vấn giải pháp, phát triển phần mềm và triển khai hạ tầng AWS cho khách hàng tại Việt Nam và Nhật Bản.

Xây dựng các kiến trúc an toàn, hiệu suất cao, linh hoạt, và tối ưu chi phí cho khách hàng là nhiệm vụ hàng đầu của VTI Cloud trong sứ mệnh công nghệ hóa doanh nghiệp.