- vừa được xem lúc

Tìm hiểu về Serverless Framework

0 0 29

Người đăng: Hoàng Đức Quân

Theo Viblo Asia

Bài viết gốc xem tại: https://vtitech.vn/tim-hieu-ve-serverless-framework/

Hôm nay mình sẽ cùng các bạn làm quen với Serverless framework - một trong những framework xây dựng ứng dụng serverless phổ biến hiện nay.

Tổng quan về Serverless

Serverless là 1 framework miễn phí và Open Source viết bằng Node.js. Serverless là framework đầu tiên được phát triền nhằm xây dựng ứng dụng trên AWS Lambda.

Đánh giá cá nhân thì mình thấy Serverless là 1 framework khá gọn nhẹ, dễ dùng. Bởi sau khi khởi tạo 1 project Serverless mới, ngoài thư mục dependancies chúng ta không cần quan tâm nhiều ra thì có 2 phần: source code tự phát triển thêm và file serverless.yml. So với 1 số framework server như Rails, Laravel,... thì quả là gọn nhẹ về số lượng file.

Cài đặt và các CLI

Cài đặt

Do là 1 framework phát triển bằng Node.js nên Serverless đương nhiên quản lý bằng npm. Vì vậy cách cài đơn giản nhất là dùng npm:

npm install -g serverless

Có 1 vài cách khác nữa các bạn có thể xem ở link doc của Serverless mà mình đã đưa ở thư mục tham khảo. Tuy nhiên theo ý kiến cá nhân thì NodeJS là 1 trong những công cụ phổ biến của lập trình hiện đại nên cách tốt nhất vẫn là cài NodeJS từ đầu rồi sau đó cài Serverless vẫn tối ưu nhất.

CLI

  • Cách khởi tạo 1 project Serverless mới:
serverless
  • Cách deploy:
serverless deploy

Bằng cách này, bạn có thể tạo 1 project Serverless bằng cách tạo 1 folder chứa mã nguồn và file serverless.yml cài đặt cấu trúc và cách triển khai code. Sau đó chạy deploy và code của chúng ta sẽ được triển khai trên AWS Lambda.

  • Invoke function hello
serverless invoke -f hello # Invoke và hiển thị log:
serverless invoke -f hello --log
  • Fetch log của function
serverless logs -f hello # Tail logs
serverless logs -f hello --tail
  • Xóa
serverless remove

Command này cho phép bạn xóa đi toàn bộ các resource AWS với chắc chắn không gặp bất cứ 1 lỗi nào.

File serverless.yml

serverless.yml là file sẽ cho chúng ta setup các dịch vụ AWS chúng ta sẽ dùng và function nào cũng ta sẽ invoke. Mục này chúng ta sẽ nhìn và phân tích file serverless.yml mà mình đã dựng dựa theo ví dụ thực hành mình làm ở link thứ 2 phần tham khảo

service: language-corrector
frameworkVersion: '3' provider: name: aws stage: dev region: ap-northeast-1 profile: Gryqhon runtime: python3.8 ecr: images: gingerit: path: ./ apiGateway: apiKeys: - free: - language-corrector-free - paid: - language-corrector-paid usagePlan: - free: quota: limit: 100 offset: 1 period: MONTH throttle: burstLimit: 1 rateLimit: 1 - paid: quota: limit: 1000 offset: 1 period: MONTH throttle: burstLimit: 200 rateLimit: 100 functions: gingerit: timeout: 10 memorySize: 256 image: name: gingerit events: - http: path: language_corrector method: post cors: false async: false private: false

Chúng ta sẽ cùng phân tích các định nghĩa trong file trên:

  • service: tên của service được triển khai.
  • frameworkVersion: chỉ định version của framework. Đây là cài đặt optional.
  • provider: Nền tảng cloud mà Serverless framework triển khai. Mặc định sẽ là AWS, nhưng các bạn có thể cài đặt là Google cloud hay Azure được.
  • functions: Các function được triển khai.

provider, các cài đặt sẽ gồm có:

  • name: Tùy theo nền tảng bạn triển khai mà bạn để là aws, google hay là azure.
  • runtime: Ngôn ngữ được sử dụng của service. Ví dụ là nodejs14.x hay python3.8
  • region: Đây là cài đặt optional. Mặc định là us-east-1. Còn mình đang ở Nhật nên chọn ap-northeast-1
  • profile: Đây cũng là cài đặt optional. Máy mình sử dụng đang không để credantial mặc định nên thêm config này vào.
  • Sau đó là các dịch vụ bổ sung như ecr hay apiGateway tùy theo project của bạn

functions, chúng ta sẽ có:

  • Tên function, ở đây là gingerit
  • Sau function name sẽ là image hoặc handler
  • Các cài đặt optional là timeout, memorySize.
  • Phần event là phần trigger ở trên Lambda. Trong ví dụ này do là API Gateway nên sẽ có phần http. Có sự gần gũi với SAM.

Link tham khảo

Bình luận

Bài viết tương tự

- vừa được xem lúc

PDF Export, cẩn thận với những input có thể truyền vào

Giới thiệu. Dạo gần đây mình tình cờ gặp rất nhiều lỗi XSS, tuy nhiên trang đó lại có sử dụng dữ liệu người dùng input vào để export ra PDF.

0 0 66

- vừa được xem lúc

Giới thiệu về AWS Batch

Khi sử dụng hệ thống cloud service, điều chúng ta thường phải quan tâm đến không chỉ là hiệu suất hoạt động (performance) mà còn phải chú ý đến cả chi phí bỏ ra để duy trì hoạt động của hệ thống. Chắn hẳn là hệ thống lớn hay nhỏ nào cũng đã từng phải dùng đến những instance chuyên để chạy batch thực

0 0 143

- vừa được xem lúc

Tìm hiểu về AWS KMS

1. AWS KMS là gì. Ở KMS bạn có thể lựa chọn tạo symetric key (khóa đối xứng) hoặc asymetric key (khóa bất đối xứng) để làm CMK (Customer Master Key). Sau khi tạo key thì có thể thiết đặt key policy để control quyền access và sử dụng key.

0 0 66

- vừa được xem lúc

AWS VPC cho người mới bắt đầu

Tuần này, tôi trình bày lại những gì tôi đã học được về Virtual Private Cloud (VPC) của Amazon. Nếu bạn muốn xem những gì tôi đã học được về AWS, hãy xem Tổng quan về DynamoDB và Tổng quan về S3. VPC là gì. Những điều cần lưu ý:.

0 0 84

- vừa được xem lúc

AWS Essentials (Phần 6): Guildline SNS Basic trên AWS

Tiếp tục với chuỗi bài viết về Basic AWS Setting, chúng ta tiếp tục tìm hiểu tiếp tới SNS (Simple Notification Service). Đây là một service của AWS cho phép người dùng setting thực hiện gửi email, text message hay push notification tự động tới mobile device dựa trên event người dùng setting phía AWS

0 0 145

- vừa được xem lúc

Sử dụng Amazon CloudFront Content Delivery Network với Private S3 Bucket — Signing URLs

Trong nhiều trường hợp, thì việc sử dụng CDN là bắt buộc. Mình đã trải nghiệm với một số CDN nhưng cuối cùng mình lựa chọn sử dụng AWS CloudFront.

0 0 117