Phát triển API

Phát triển ứng dụng trên AWS

Ricardo Sueiras

Principal Technologist

Tích hợp API Gateway

 

Tích hợp API Gateway

  • Nhiều tùy chọn tích hợp back-end
  • HTTP: mọi endpoint công khai
  • API dịch vụ AWS như DynamoDB hoặc SNS
  • Hàm Lambda
  • Tài nguyên riêng qua liên kết VPC
  • Phản hồi giả lập không cần back-end thật
Phát triển ứng dụng trên AWS

Loại tích hợp: proxy

 

Các loại tích hợp API

  • Loại tích hợp quyết định mức kiểm soát của API Gateway
  • Kiểu proxy: AWS_PROXY và HTTP_PROXY
  • Gửi toàn bộ yêu cầu HTTP thẳng tới back-end
  • API Gateway chỉ chuyển tiếp trong suốt
  • Back-end tạo phản hồi
Phát triển ứng dụng trên AWS

Loại tích hợp: không proxy

  • Kiểu không proxy: AWS và HTTP
  • Bạn cấu hình chuyển đổi request/response
  • Dựa trên template ánh xạ
  • Template viết bằng Velocity Template Language (VTL)

 

Các loại tích hợp API

Phát triển ứng dụng trên AWS

Xác thực yêu cầu

 

xác thực yêu cầu

  • Xác thực yêu cầu trước khi tới back-end
  • Bắt lỗi thiếu trường bắt buộc
  • Bắt lỗi JSON không hợp lệ
  • Bắt lỗi sai kiểu tham số
  • Thất bại thường trả 400 Bad Request
Phát triển ứng dụng trên AWS

Xác thực yêu cầu

 

xác thực yêu cầu

  • Phạm vi xác thực gồm:
    • Header
    • Tham số query string
    • Thân yêu cầu
    • Lược đồ JSON
Phát triển ứng dụng trên AWS

Xác thực yêu cầu

 

xác thực yêu cầu

  • Lợi ích của xác thực:
    • Giảm yêu cầu back-end không hợp lệ
    • Giảm chi phí chạy Lambda
    • Tăng độ tin cậy API
Phát triển ứng dụng trên AWS

Chuyển đổi

  • Tái cấu trúc request/response không cần sửa code back-end
    • Đổi cấu trúc payload
    • Đổi tên trường
    • Biến đổi header
    • Chuyển đổi định dạng dữ liệu
    • Ẩn chi tiết triển khai
  • Vận hành bằng template ánh xạ VTL

 

Chuyển đổi API

Phát triển ứng dụng trên AWS

Xử lý lỗi

 

Lỗi API

  • Hai nhóm lỗi
    • Lỗi Gateway: do API Gateway phát sinh
    • Lỗi tích hợp: lỗi từ back-end
  • Lỗi gateway thường gặp:
    • 400 Bad Request: xác thực yêu cầu thất bại
    • 429 Too Many Requests: vượt ngưỡng throttling
Phát triển ứng dụng trên AWS

Xử lý lỗi

 

Lỗi API

  • Lỗi tích hợp thường gặp:
    • 502 Bad Gateway: phản hồi sai định dạng hoặc lỗi
    • 503 Service Unavailable: back-end ngừng hoạt động hoặc quá tải
    • 504 Gateway Timeout: vượt timeout 29 giây
    • REST API Khu vực và Riêng tư có thể vượt quá 29 giây
Phát triển ứng dụng trên AWS

Ghi log

  • Nhật ký thực thi và số liệu CloudWatch là công cụ gỡ lỗi chủ chốt
  • API Gateway tích hợp CloudWatch để:
    • Ghi log
    • Thu thập số liệu
    • Theo dõi thực thi

 

 

Quan sát API

Phát triển ứng dụng trên AWS

Ghi log

  • CloudWatch Logs giúp bạn gỡ lỗi:
    • Tích hợp thất bại
    • Lỗi chuyển đổi
    • Lỗi ủy quyền
    • Sự cố thực thi Lambda

 

 

Quan sát API

Phát triển ứng dụng trên AWS

Stage: quản lý API theo môi trường

 

Stages

  • Một định nghĩa API phục vụ nhiều môi trường
  • Stage là cách API Gateway quản lý các môi trường đó
Phát triển ứng dụng trên AWS

Stage: quản lý API theo môi trường

 

Stages

  • Một định nghĩa API phục vụ nhiều môi trường
  • Stage là cách API Gateway quản lý các môi trường đó
  • Stage là một tham chiếu có tên
  • Trỏ tới ảnh chụp triển khai cấu hình API của bạn
Phát triển ứng dụng trên AWS

Stage: quản lý API theo môi trường

 

Stages

  • Một định nghĩa API phục vụ nhiều môi trường
  • Stage là cách API Gateway quản lý các môi trường đó
  • Stage là một tham chiếu có tên
  • Trỏ tới ảnh chụp triển khai cấu hình API của bạn
  • Tên stage phổ biến:
    • Dev
    • Test
    • QA và Prod
Phát triển ứng dụng trên AWS

Stage: quản lý API theo môi trường

 

Stages

  • Một định nghĩa API phục vụ nhiều môi trường
  • Stage là cách API Gateway quản lý các môi trường đó
  • Stage là một tham chiếu có tên
  • Trỏ tới ảnh chụp triển khai cấu hình API của bạn
  • Tên stage phổ biến: Dev, Test, QA, Prod
  • URL gọi thực thi phản ánh từng stage
Phát triển ứng dụng trên AWS

Stage: quản lý API theo môi trường

 

Stages

  • Một định nghĩa API phục vụ nhiều môi trường
  • Stage là cách API Gateway quản lý các môi trường đó
  • Stage là một tham chiếu có tên
  • Trỏ tới ảnh chụp triển khai cấu hình API của bạn
  • Tên stage phổ biến: Dev, Test, QA, Prod
  • URL gọi thực thi phản ánh từng stage
  • Nhiều stage có thể trỏ cùng một deployment để rollback tức thì
Phát triển ứng dụng trên AWS

Stage: quản lý API theo môi trường

 

Stages

  • Thay đổi chỉ có hiệu lực khi được triển khai lên một stage
Phát triển ứng dụng trên AWS

Tính năng của Stage

  • Mỗi stage cấu hình độc lập
  • Cấu hình gồm biến stage
  • Biến stage là cặp khóa-giá trị
  • Điều hướng một deployment tới các back-end khác nhau
  • Không cần redeploy khi đổi môi trường

 

stage

Phát triển ứng dụng trên AWS

Tính năng của Stage

  • Triển khai canary
    • Chỉ áp dụng cho REST API
    • Gửi một tỷ lệ traffic tới bản triển khai mới
    • Nâng cấp lên phát hành đầy đủ
    • Xóa canary để rollback

 

stage

Phát triển ứng dụng trên AWS

Tính năng của Stage

  • Throttling
    • Thiết lập ở cấp stage
    • Áp dụng cho mọi method, có thể ghi đè theo method

 

stage

Phát triển ứng dụng trên AWS

Tính năng của Stage

  • Throttling
    • Thiết lập ở cấp stage
    • Áp dụng cho mọi method, có thể ghi đè theo method
  • Bộ nhớ đệm
    • Chỉ REST API
    • Lưu phản hồi back-end tại stage
    • Client có thể bỏ qua bằng Cache-Control
    • TTL từ 0 đến 3600 giây, mặc định 300

 

stage

Phát triển ứng dụng trên AWS

Tính năng của Stage

  • Ghi log có hai chế độ
    • Access log
    • Dựng từ biến $context, gửi tới nhóm log CloudWatch
    • Execution log
    • Ghi chi tiết đầy đủ request và response

 

stage

Phát triển ứng dụng trên AWS

Cùng luyện tập nào!

Phát triển ứng dụng trên AWS

Preparing Video For Download...