Sử dụng CDK, Build CRUD API với API Gateway, Lambda and DynamoDB

Sử dụng CDK, Build CRUD API với API Gateway, Lambda and DynamoDB

avatar

Phong Nguyen

2024.04.09

Bài lab này sẽ hướng dẫn bạn sử dụng source code aws-cdk-examples, build CRUD API với các thành phần API gateway, Lambda, DynamoDB sử dụng CDK (AWS Cloud Development Kit).

Lab Details

  1. Duration: 15 minutes
  2. AWS Region: US East (N. Virginia) us-east-1

Architecture Diagram

Task Details

  1. Create development environment.
  2. Build app
  3. Deploy
  4. Test
  5. Clean up

1. Chuẩn bị môi trường

Chúng ta có thể thực thi CDK ở một trong 2 môi trường sau

  1. Sử dụng AWS Cloud9 development environment, cách thực hiện xem tại đây
  2. Môi trường local. Yêu cầu cài đặt:
    1. VS Code or git bash
    2. NodeJS
    3. Cài đặt cdk: npm install -g aws-cdk

2. Build app

  • Clone source code Sample aws-cdk-examples

    git clone https://github.com/aws-samples/aws-cdk-examples.git
    
  • Di chuyển vào thư mục project

    cd aws-cdk-examples/typescript/api-cors-lambda-crud-dynamodb/
    

  • Thực hiện build project

    npm install
    npm run build
    

3. Deploy

  1. Đầu tiên chúng ta sẽ run lệnh cdk bootstrap để deploys the CDK Toolkit staging stack, tham khảo bootstrapping. Lệnh này chúng ta chỉ chạy một lần duy nhất.
  2. Run cdk deploy. This will deploy / redeploy your Stack to your AWS Account.
  3. Sau khi deploy hoàn thành, kiểm tra các resource được tạo
  • Cloudformation Stack

  • API Gateway

  • Lambda

  • DynamoDB

4. Test hoạt động

Lấy thông tin API URL ở giao diện API gateway như trên hình

  • Create Item
curl -X POST '<API Gateway URL>/items/' -H 'Content-Type:application/json' -d '{"id": "002","name": "Cloud Mentor Pro"}'
  • getting all items
curl -X GET '<API Gateway URL>/items/' -H 'Content-Type:application/json'
  • getting an item
curl -X GET '<API Gateway URL>/items/<itemId>' -H 'Content-Type:application/json'
  • updating an item
curl -X PATCH '<API Gateway URL>/items/<itemId>' -H 'Content-Type:application/json' -d '{"id": "Phong Mentor"}'
  • deleting an item
curl -X DELETE '<API Gateway URL>/items/<itemId>' -H 'Content-Type:application/json'

5. Clean up

cdk destroy

Tham khảo

https://docs.aws.amazon.com/cdk/v2/guide/cli.html