10/12/2018, 19:20

Viết một CRUD API sử dụng Serverless Framework & DynamoDB

Xin chào tất cả các bạn, mình là Quân, trong bài trước, mình đã hướng dẫn cho các bạn viết một REST API sử dụng giao diện web console của AWS, hôm nay chúng ta sẽ không dùng nhiều giao diện web nữa mà đi vào viết một ứng dụng CRUD API sử dụng Serverless Framework và DynamoDB nhé. ...

Xin chào tất cả các bạn, mình là Quân, trong bài trước, mình đã hướng dẫn cho các bạn viết một REST API sử dụng giao diện web console của AWS, hôm nay chúng ta sẽ không dùng nhiều giao diện web nữa mà đi vào viết một ứng dụng CRUD API sử dụng Serverless Framework và DynamoDB nhé.

“Bài này thuộc bài số 03 trong loạt bài Xây dựng các ứng dụng không máy chủ với Nodejs, AWS Lambda, API Gateway, Serverless Framework và DynamoDB“

Source Github: https://github.com/trungquan17/crud-cats-api

Nội dung bài viết:

  1. Khởi tạo project Serverless Node.js

  2. Cấu hình thông tin đăng nhập AWS vào máy local

  3. Viết API tạo con mèo – Create Cat

  4. API gọi con mèo – Get Cat

  5. API chỉnh sửa thông tin mèo – Update Cat

  6. API xóa con mèo – Delete Cat

1. Khởi tạo project Serverless Node.js

Serverless Framework là một CLI (Command Line Interface) mã nguồn mở mà hỗ trợ cho chúng ta triển khai các ứng dụng không có máy chủ. Xem thêm ở bài dưới để hiểu hơn về ứng dụng không máy chủ Serverless là gì?

Xin chào Serverless, chúng ta làm quen với nhau nhé?

Trước tiên hãy đảm bảo máy bạn đã cài serverlessglobal bằng lệnh:

npm install -g serverless

Sau khi cài xong thì các bạn có thể sử dụng Serverless CLI bằng lệnh serverless hoặc viết tắt là sls, ví dụ:

serverless -v hoặc sls -v

Tạo một project serverless node.js bằng lệnh sau:

sls create --template aws-nodejs --path crud-cats --name crud-cats

Trong đó:

–template: là tên của mẫu kiến trúc có sẵn, ở đây mình chọn node.js, còn rất nhiều mẫu khác tùy theo ngôn ngữ mà bạn sử dụng ở đây:

https://serverless.com/framework/docs/providers/aws/cli-reference/create/

–path: tên đường dẫn đến thư mục source code

–name: tên của service trong file serverless.yml

Sau khi tạo thành công thì bạn sẽ có một thư mục chứa các file tương tự như thế này:

.gitignore: khai báo cho git biết những tập tin bị bỏ qua, không được push lên server.

handler.js: Là nơi mà chúng ta sẽ định nghĩa các hàm lambda (Lambda Function).

serverless.yml: Là nơi chúng ta sẽ khai báo cấu hình cho ứng dụng, file này thông thường có 3 phần chính sau:

Provider: Sử dụng để công khai các cấu hình cụ thể cho nhà cung cấp dịch vụ Cloud, ví dụ như cấu hình tên nhà cung cấp, môi trường runtime, khu vực sử dụng…vv

Functions: Chúng ta sẽ chỉ định các Function logic chức năng tại đây.

Resources: Phần này sẽ khai báo các tài nguyên để cho các Functions của bạn sử dụng được. Tài nguyên sẽ được khai báo bởi một dịch vụ của AWS có tên là CloudFormation.

2. Cấu hình thông tin đăng nhập AWS vào máy local

Để có thể deploy code lên AWS thì trước tiên phải cấu hình hai thông tin đăng nhập ở máy local của bạn, đó là Aws Access key IDSecret Access Key

Có 2 cách để làm điều này, một là export chúng vào biến môi trường của dự án, hai là cấu hình sử dụng AWS Profile. Trong bài này, mình sẽ làm theo cách thứ nhất.

Đầu tiên, cần lấy được 2 cái key ở trên, các bạn đăng nhập vào Aws Console bằng tài khoản root, tìm một service có tên là IAM, vào mục Users.

Chọn Add User để tạo một tài khoản con mới và generate key từ chính cái tài khoản con này chứ không nên generate key từ tài khoản root.

Có 5 bước trong quá trình add user:

Bước 1: Set user details

Các bạn cấu hình như mình làm ở ảnh bên dưới để bật access key ID, secret access key và password cho tài khoản.

Bước 2: Phân quyền cho user (Set permissions)

Mình sẽ chọn Attach existing policies directly và cấp cho user này có quyền Administrator luôn đỡ phải nghĩ nhiều, vì đang ví dụ mà             </div>
            
            <div class=

0