Thông tin chung

Câu hỏi: Amazon API Gateway là gì?

Amazon API Gateway là dịch vụ được quản lý hoàn toàn giúp các nhà phát triển dễ dàng phát hành, duy trì, giám sát và bảo vệ API ở mọi quy mô. Chỉ với vài cú nhấp chuột trên Bảng điều khiển quản lý AWS, bạn có thể tạo một API hoạt động giống như “cửa trước” để các ứng dụng truy cập dữ liệu, logic nghiệp vụ hoặc chức năng từ các dịch vụ phụ trợ, ví dụ như các khối lượng công việc đang chạy trên Amazon Elastic Compute Cloud (Amazon EC2), Amazon Elastic Container Service (Amazon ECS) hoặc AWS Elastic Beanstalk, mã đang chạy trên AWS Lambda hoặc một ứng dụng web bất kỳ. Amazon API Gateway xử lý tất cả các tác vụ liên quan đến tiếp nhận và xử lý lên đến hàng trăm nghìn lệnh gọi API đồng thời, bao gồm quản lý lưu lượng truy cập, cấp phép và kiểm soát truy cập, giám sát và quản lý phiên bản API. Amazon API Gateway không yêu cầu phí tối thiểu hoặc phí ban đầu. Đối với REST API, bạn chỉ phải trả phí cho những truy vấn API mà bạn nhận được và lượng dữ liệu truyền đi. Đối với WebSocket API, bạn chỉ thanh toán cho các tin nhắn đã gửi đi và nhận được và trong thời gian người dùng/thiết bị được kết nối với WebSocket API.

Câu hỏi: Tại sao cần sử dụng Amazon API Gateway?

Amazon API Gateway cung cấp cho nhà phát triển dịch vụ đơn giản, linh hoạt có quản lý toàn phần, trả phí theo nhu cầu sử dụng để xử lý tất cả những khía cạnh tạo và vận hành các API mạnh mẽ cho lớp backend cho ứng dụng. Với API Gateway, bạn có thể khởi chạy dịch vụ mới nhanh hơn và cần mức đầu tư thấp hơn do đó bạn có thể tập trung xây dựng các dịch vụ nghiệp vụ cốt lõi của mình. API Gateway được xây dựng để hỗ trợ bạn trong một số khía cạnh của việc tạo và quản lý API:

1) Đo lường. API Gateway giúp bạn định nghĩa kế hoạch để đo lường và giới hạn truy cập của nhà phát triển bên thứ ba đến API của bạn. Bạn có thể định nghĩa một nhóm các kế hoạch, cấu hình hoạt động điều tiết và hạn mức theo khóa API. API Gateway tự động đo lường lưu lượng đến API và cho phép bạn trích xuất dữ liệu sử dụng cho từng khóa API.

2) Bảo mật. API Gateway cung cấp cho bạn nhiều công cụ để cấp quyền truy cập đến API và kiểm soát truy cập hoạt động dịch vụ. API Gateway cho phép bạn sử dụng các công cụ quản trị và bảo mật AWS như AWS Identity and Access Management (IAM) và Amazon Cognito để cấp quyền truy cập đến API của bạn. API Gateway có thể xác thực các lệnh gọi API đã ký thay mặt cho bạn bằng cùng công nghệ mà AWS sử dụng cho các API của mình. Sử dụng công cụ cho phép tùy chỉnh được viết dưới dạng hàm AWS Lambda, API Gateway cũng có thể giúp bạn xác thực mã thông báo bearer đến, loại bỏ các lo ngại về cấp quyền khỏi mã lớp backend của bạn.

3) Khả năng phục hồi. API Gateway giúp bạn quản lý lưu lượng truy cập thông qua việc điều tiết lưu lượng để các thao tác lớp backend có thể đáp ứng được thời điểm lưu lượng truy cập tăng đột biến. API Gateway cũng giúp bạn cải thiện hiệu năng của các API và độ trễ mà người dùng cuối gặp phải bằng cách lưu vào bộ nhớ đệm đầu ra của các lệnh gọi API nhằm tránh lúc nào cũng phải gọi lớp backend.

4) Giám sát hoạt động. Sau khi triển khai và sử dụng API, Amazon API Gateway cung cấp cho bạn bảng thông tin chỉ số để giám sát các lệnh gọi đến dịch vụ. Bảng thông tin API Gateway, bằng việc tích hợp với Amazon CloudWatch, cung cấp cho bạn các chỉ số hiệu suất lớp backend bao gồm lệnh gọi API, dữ liệu độ trễ và tỷ lệ lỗi. Bạn có thể kích hoạt chỉ số chi tiết cho mỗi method trên API của bạn, đồng thời tiếp nhận lỗi, truy cập hoặc gỡ lỗi nhật ký trên CloudWatch Logs.

5) Quản lý vòng đời. Sau khi triển khai API, thông thường bạn cần xây dựng và thử nghiệm phiên bản mới để tăng cường hoặc bổ sung tính năng mới. API Gateway cho phép bạn vận hành đồng thời nhiều phiên bản API và nhiều giai đoạn cho mỗi phiên bản để các ứng dụng hiện tại có thể tiếp tục gọi phiên bản trước đó sau khi triển khai phiên bản API mới.

6) Được thiết kế cho nhà phát triển. API Gateway cho phép bạn nhanh chóng tạo các API và gán nội dung tĩnh cho phản hồi của chúng nhằm giảm bớt công sức phát triển giữa các nhóm và thời gian phát hành ra thị trường cho các ứng dụng của bạn. Những nhóm phụ thuộc vào API của bạn có thể bắt đầu phát triển trong khi bạn xây dựng các quy trình lớp backend của mình.

7) Giao tiếp hai chiều thời gian thực. Xây dựng được các ứng dụng giao tiếp hai chiều thời gian thực như những ứng dụng trò chuyện, bảng điều khiển phát trực tuyến và thông báo mà không phải vận hành hoặc quản lý bất kỳ máy chủ nào. API Gateway duy trì kết nối ổn định giữa người dùng được kết nối và cho phép chuyển tin nhắn giữa những người dùng.

Câu hỏi: Amazon API Gateway hỗ trợ những loại API nào?

Amazon API Gateway hỗ trợ tạo HTTP/REST API và WebSocket API.

HTTP/REST API: Trên Amazon API Gateway, HTTP/REST API là một nhóm tài nguyên và phương pháp hoặc điểm cuối. Có thể triển khai HTTP/REST API thành các giai đoạn khác nhau và nhân bản thành phiên bản mới.

WebSocket API: Trong Amazon API Gateway, WebSocket API giúp duy trì kết nối ổn định giữa các máy khách đã kết nối nhằm kích hoạt tính năng giao tiếp thời gian thực qua tin nhắn. Với WebSocket API trong API Gateway, bạn có thể xác định các tích hợp phụ trợ với các chức năng AWS Lambda, Amazon Kinesis hoặc bất kỳ điểm cuối HTTP nào sẽ được dẫn ra khi nhận được tin nhắn từ các máy khách đã kết nối.

Câu hỏi: Làm thế nào để bắt đầu sử dụng REST API trong Amazon API Gateway?

Bạn có thể tạo API tùy chỉnh một cách nhanh chóng và dễ dàng bằng cách sử dụng Amazon API Gateway. Ở ví dụ đơn giản “Xin chào thế giới”, thực hiện các bước sau:

1. Đến bảng điều khiển Amazon API Gateway.

2. Chọn một REST API hiện có hoặc tạo mới bằng cách nhập tên của API.

3. Trên cửa sổ cây REST API, nhấp “Tạo tài nguyên”.

4. Chọn tên cho tài nguyên, chẳng hạn như “xe ô tô con”.

5. Với tài nguyên mới đã chọn, nhấp vào nút để tạo method mới rồi chọn hành động HTTP được liên kết với method (ví dụ: GET).

6. Chọn kiểu tích hợp (ví dụ: HTTP Proxy), rồi nhập URL mà Amazon API Gateway sẽ gọi.

7. Định nghĩa cách thức chuyển đổi các yêu cầu và phản hồi bằng cách sử dụng biểu mẫu ánh xạ hoặc chấp nhận cài đặt mặc định để truyền toàn bộ dữ liệu yêu cầu và phản hồi mà không cần áp dụng bất kỳ hoạt động chuyển đổi nào.

8. Cấu hình cài đặt bảo mật của method.

9. Triển khai API mới của bạn sang một giai đoạn.

10. Từ trang quản lý Giai đoạn, thiết lập bộ nhớ đệm và điều tiết.

11. Trên tab Nền tảng máy khách trong bảng điều khiển Amazon API Gateway, nhấp vào nút để tải xuống thư viện Android, iOS SDK hoặc JavaScript có chứa các method helper để gọi thao tác sayHello. Thư viện SDK thực hiện gọi API của bạn tương tự như gọi một method cục bộ. SDK máy khách tự động xử lý các lần thử lại, thông báo cho nhà phát triển về hiện trạng mạng hoặc các trạng thái lỗi khác. Thư viện SDK có logic cần thiết để xác thực ứng dụng máy khách truy cập đến API của bạn.

12. Tích hợp SDK đã tải xuống vào ứng dụng di động của bạn. Viết mã để kích hoạt API tùy chỉnh của bạn. Ví dụ: để gọi API getCar(int carId) trên ứng dụng iOS:

–(void)getSampleCar

{

NSString *response = [MyServiceClient getCar:1323];

NSLog( @”Response was [%@]”, response );

}

13. Chạy ứng dụng của bạn.

Câu hỏi: Làm thế nào để bắt đầu sử dụng WebSocket API trong Amazon API Gateway?

Để bắt đầu, bạn có thể tạo một WebSocket API bằng Bảng điều khiển quản lý AWS, AWS CLI hoặc AWS SDK. Sau đó, bạn có thể thiết lập định tuyến WebSocket để cho biết các dịch vụ lớp backend như AWS Lambda, Amazon Kinesis hoặc điểm cuối HTTP của bạn sẽ được dẫn ra dựa trên nội dung tin nhắn. Tham khảo tài liệu để bắt đầu sử dụng WebSocket API trong API Gateway.

Câu hỏi: Tôi có thể tạo điểm cuối HTTPS không?

Có, tất cả các API được tạo ra bằng Amazon API Gateway chỉ cung cấp HTTPS điểm cuối. Amazon API Gateway không hỗ trợ điểm cuối không được mã hóa (HTTP). Theo mặc định, Amazon API Gateway gán miền nội bộ cho API có khả năng tự động sử dụng chứng chỉ Amazon API Gateway. Khi cấu hình API của bạn để chạy theo tên miền tùy chỉnh, bạn có thể cung cấp chứng chỉ của mình cho miền đó.

Câu hỏi: Tôi có thể sử dụng loại dữ liệu nào với Amazon API Gateway?

API được xây dựng trên Amazon API Gateway có thể chấp nhận bất kỳ dữ liệu nào được gửi qua HTTP cho REST API. Các định dạng dữ liệu thông thường bao gồm JSON, XML, thông số chuỗi truy vấn và tiêu đề yêu cầu. Bạn có thể khai báo bất kỳ kiểu nội dung nào cho phản hồi của API, sau đó sử dụng biểu mẫu chuyển đổi để đổi phản hồi lớp backend sang định dạng mong muốn.

Câu hỏi: Amazon API Gateway có thể giao tiếp với những lớp backend nào?

Amazon API Gateway có thể thực thi các hàm AWS Lambda trên tài khoản của bạn, bắt đầu các máy trạng thái AWS Step Functions hoặc gọi điểm cuối HTTP được lưu trữ trên AWS Elastic Beanstalk, Amazon EC2, đồng thời cả các thao tác trên HTTP được lưu trữ ngoài AWS có khả năng truy cập thông qua Internet công cộng. API Gateway cũng cho phép bạn xác định biểu mẫu ánh xạ để tạo nội dung tĩnh cần trả về, giúp bạn mô phỏng các API trước khi lớp backend sẵn sàng. Bạn cũng có thể tích hợp API Gateway trực tiếp với các dịch vụ AWS khác – ví dụ: bạn có thể cung cấp method API trên API Gateway để gửi trực tiếp dữ liệu sang Amazon Kinesis.

Câu hỏi: Amazon API Gateway có thể tạo ra SDK cho nền tảng máy khách nào?

API Gateway tạo SDK tùy chỉnh cho phát triển ứng dụng di động bằng Android và iOS (Swift và Objective-C) và cho phát triển ứng dụng web bằng JavaScript. API Gateway cũng hỗ trợ tạo SDK cho Ruby và Java. Sau khi định nghĩa một API và các mô hình liên quan trên API Gateway, bạn có thể sử dụng bảng điều khiển AWS hoặc các API của API Gateway để tạo và tải SDK máy khách xuống. SDK máy khách chỉ được tạo cho REST API trong Amazon API Gateway.

Câu hỏi: Amazon API Gateway được cung cấp ở khu vực AWS nào?

Có thể sử dụng REST API trong Amazon API Gateway tại mọi khu vực được nêu tại đây.

Bạn có thể tạo các WebSocket API tại Miền Đông Hoa Kỳ (Bắc Virginia), Miền Tây Hoa Kỳ (Bắc California), Miền Tây Hoa Kỳ (Oregon), Châu Á Thái Bình Dương (Tokyo), Châu Á Thái Bình Dương (Sydney), Châu Âu (Ai-len) và Châu Âu (Frankfurt).

Câu hỏi: Tôi có thể quản lý những gì thông qua bảng điều khiển Amazon API Gateway?

Thông qua bảng điều khiển Amazon API Gateway, bạn có thể định nghĩa REST API cũng như các tài nguyên và phương pháp liên quan, quản lý vòng đời API, tạo SDK máy khách và xem các chỉ số API. Bạn cũng có thể sử dụng bảng điều khiển API Gateway để định nghĩa kế hoạch sử dụng của API, quản lý khóa API của nhà phát triển cũng như cấu hình hoạt động điều tiết và hạn mức. Toàn bộ các thao tác giống nhau được cung cấp thông qua các API của API Gateway.

Câu hỏi: Tài nguyên là gì?

Tài nguyên là một đối tượng có kiểu, là một phần của miền API của bạn. Mỗi tài nguyên có thể có mô hình dữ liệu được liên kết, quan hệ với các tài nguyên khác và có thể phản hồi với nhiều method khác nhau. Bạn cũng có thể định nghĩa tài nguyên dưới dạng biến để chặn yêu cầu gửi đến nhiều tài nguyên con.

Câu hỏi: Method là gì?

Mỗi tài nguyên trên một REST API có thể hỗ trợ một hay nhiều method HTTP tiêu chuẩn. Bạn định nghĩa cần hỗ trợ những hành động nào cho mỗi tài nguyên (GET, POST, PUT, PATCH, DELETE, HEAD, OPTIONS) và việc triển khai chúng. Ví dụ: yêu cầu GET gửi đến tài nguyên xe ô tô con sẽ trả về danh sách xe ô tô con. Để kết nối toàn bộ các method trên một tài nguyên với một điểm cuối lớp backend, API Gateway cũng hỗ trợ method “ANY” đặc biệt.

Câu hỏi: Kế hoạch sử dụng là gì?

Kế hoạch sử dụng giúp bạn khai báo kế hoạch cho nhà phát triển bên thứ ba để giới hạn truy cập đến các API nhất định, định nghĩa hoạt động điều tiết và yêu cầu hạn mức cũng như liên kết chúng với khóa API. Bạn cũng có thể trích xuất dữ liệu sử dụng theo khóa API để phân tích mức sử dụng API và tạo tài liệu tính phí. Ví dụ: bạn có thể tạo chương trình cơ bản, chuyên nghiệp và doanh nghiệp – bạn có thể cấu hình kế hoạch sử dụng cơ bản để chỉ cho phép 1.000 yêu cầu mỗi ngày và tối đa 5 yêu cầu mỗi giây (RPS).

Câu hỏi: Vòng đời API của Amazon API Gateway là gì?

Với Amazon API Gateway, mỗi REST API có thể có nhiều giai đoạn khác nhau. Giai đoạn được thiết kế để hỗ trợ vòng đời phát triển của API – ví dụ: sau khi xây dựng API và bạn triển khai chúng sang giai đoạn phát triển hoặc khi bạn đã sẵn sàng cho sản xuất, bạn có thể triển khai chúng sang giai đoạn sản xuất.

Câu hỏi: Giai đoạn là gì?

Trên Amazon API Gateway, giai đoạn tương tự như thẻ đánh dấu. Giai đoạn định nghĩa đường dẫn để truy cập triển khai. Ví dụ: bạn có thể định nghĩa giai đoạn phát triển và triển khai API xe hơi sang giai đoạn đó. Bạn có thể truy cập tài nguyên này theo địa chỉ https://www.myapi.com/dev/cars. Bạn cũng có thể thiết lập tên miền tùy chỉnh để trỏ trực tiếp đến một giai đoạn để bạn không phải sử dụng thêm thông số đường dẫn nữa. Ví dụ: nếu trỏ myapi.com trực tiếp sang giai đoạn phát triển, bạn có thể truy cập tài nguyên xe hơi theo địa chỉ https://www.myapi.com/cars. Có thể cấu hình giai đoạn bằng cách sử dụng các biến có thể truy cập từ cấu hình API hoặc biểu mẫu ánh xạ của bạn.

Câu hỏi: Biến giai đoạn là gì?

Biến giai đoạn cho phép bạn định nghĩa cặp khóa/giá trị của giá trị cấu hình được liên kết với một giai đoạn. Có thể sử dụng các giá trị này, tương tự như biến môi trường, trên cấu hình API của bạn. Ví dụ: bạn có thể định nghĩa điểm cuối HTTP để tích hợp method của bạn dưới dạng một biến giai đoạn và sử dụng biến này trên cấu hình API thay vì viết mã cứng điểm cuối – điều này cho phép bạn sử dụng một điểm cuối khác cho mỗi giai đoạn (ví dụ: dev, beta, prod) với cùng cấu hình API. Cũng có thể truy cập biến giai đoạn trên biểu mẫu ánh xạ và có thể sử dụng để gửi thông số cấu hình sang lớp backend Lambda hoặc HTTP.

Câu hỏi: Chính sách tài nguyên là gì?

Chính sách tài nguyên là văn bản chính sách JSON để bạn gán cho một API để kiểm soát việc người dùng chính chỉ định (thường là người dùng hoặc vai trò IAM) có khả năng gọi API hay không. Bạn có thể sử dụng Chính sách tài nguyên để cho phép người dùng ở tài khoản AWS khác truy cập một cách bảo mật đến API của mình hoặc chỉ cho phép gọi API từ dải địa chỉ IP nguồn được chỉ định hoặc khối CIDR. Có thể sử dụng các Chính sách tài nguyên với REST API trong Amazon API Gateway.

Câu hỏi: Điều gì xảy ra nếu tôi triển khai nhầm sang một giai đoạn?

Amazon API Gateway lưu lịch sử triển khai của bạn. Tại thời điểm bất kỳ, sử dụng các API của Amazon API Gateway hoặc bảng điều khiển, bạn có thể đảo ngược một giai đoạn về triển khai trước đó.

Câu hỏi: Tôi có thể chạy nhiều phiên bản của cùng một REST API không?

Có. Amazon API Gateway cho phép bạn nhân bản API hiện có. Khi đã sẵn sàng bắt đầu làm việc với phiên bản chính tiếp theo của API, bạn có thể tiếp tục làm việc đồng thời với AIP phiên bản 1 và phiên bản 2.

Câu hỏi: Tôi có thể sử dụng các định nghĩa Swagger API không?

Có. Bạn có thể sử dụng Công cụ nhập Swagger mã nguồn mở của chúng tôi để nhập định nghĩa Swagger API của bạn vào Amazon API Gateway. Với công cụ nhập Swagger, bạn có thể tạo và triển khai API mới cũng như cập nhật API hiện có.

Câu hỏi: Làm thế nào để kiếm tiền từ các API của mình trên API Gateway?

Bạn có thể kiếm tiền từ các API của mình trên API Gateway bằng cách triển khai chúng dưới dạng sản phẩm trên AWS Marketplace. Trước tiên, bạn cần đăng ký làm người bán trên AWS Marketplace rồi gửi kế hoạch sử dụng trên API Gateway dưới dạng sản phẩm. Đọc tại đây để tìm hiểu thêm về Kiếm tiền từ API.

Câu hỏi: Làm thế nào để văn bản hóa API của mình trên Amazon API Gateway?

API Gateway cho phép tạo, cập nhật và xóa văn bản có liên quan đến từng phần của API của bạn chẳng hạn như method và tài nguyên. Bạn có thể truy cập API liên quan đến văn bản thông qua AWS SDK, CLI, thông qua lệnh gọi RESTful hoặc bằng cách chỉnh sửa các chuỗi văn bản ngay trên bảng điều khiển API Gateway. Cũng có thể nhập văn bản dưới dạng tệp Swagger, dưới dạng một phần của API hoặc độc lập, việc này cho phép bạn thêm hoặc cập nhật văn bản mà không can thiệp đến định nghĩa API. API Gateway tuân thủ quy cách API Mở đối với văn bản nhập từ hoặc xuất ra tệp Swagger. Tài liệu được hỗ trợ cho REST API trong API Gateway.

Câu hỏi: Làm thế nào để tránh tạo ra quá nhiều bản sao của thông báo lỗi và văn bản khác thường xuyên xảy ra trên API của mình?

Ngoài việc hỗ trợ văn bản hóa API theo tiêu chuẩn, API Gateway còn hỗ trợ kế thừa văn bản, giúp dễ dàng định nghĩa chuỗi văn bản một lần rồi sau đó sử dụng ở nhiều nơi khác nhau. Kế thừa giúp đơn giản hóa quy trình định nghĩa văn bản API và có thể chuyển đổi thành cách biểu diễn tiêu chuẩn khi xuất API thành tệp Swagger.

Câu hỏi: Tôi có thể giới hạn truy cập đến API riêng ở một điểm cuối Amazon VPC hoặc VPC không?

Có, bạn có thể áp dụng Chính sách tài nguyên với API để giới hạn truy cập đến một Amazon VPC hoặc điểm cuối VPC cụ thể. Bạn cũng có thể cấp cho Amazon VPC hoặc điểm cuối VPC từ một tài khoản khác quyền truy cập đến API Riêng bằng cách sử dụng Chính sách tài nguyên.

Bảo mật và cấp quyền

Câu hỏi: Làm thế nào để tôi cấp quyền truy cập đến API?

Với Amazon API Gateway, bạn có thể chọn thiết lập method API để yêu cầu cấp quyền. Khi thiết lập method để yêu cầu cấp quyền, bạn có thể sử dụng AWS Signature Phiên bản 4 hoặc trình cấp quyền Lambda để hỗ trợ chiến lược cấp quyền mã thông báo bearer của mình.

Câu hỏi: AWS Signature Phiên bản 4 hoạt động như thế nào?

Bạn có thể sử dụng thông tin xác thực AWS – khóa truy cập và bí mật – để ký yêu cầu gửi đến dịch vụ của bạn và cấp quyền truy cập như các dịch vụ AWS khác. Việc ký yêu cầu API của Amazon API Gateway được quản lý bằng API Gateway SDK tùy chỉnh được tạo ra cho dịch vụ của bạn. Bạn có thể truy xuất thông tin xác thực tạm thời được liên kết với một vai trò trên tài khoản AWS của bạn bằng cách sử dụng Amazon Cognito.

Câu hỏi: Trình cấp quyền Lambda là gì?

Trình cấp quyền Lambda là các hàm AWS Lambda. Với trình cấp quyền yêu cầu tùy chỉnh, bạn có thể cấp quyền truy cập đến API bằng cách sử dụng chiến lược cấp quyền mã thông báo bearer chẳng hạn như OAuth. Khi gọi một API, API Gateway kiểm tra xem trình cấp quyền Lambda có được cấu hình không, khi đó API Gateway gọi hàm Lambda bằng mã thông báo cấp quyền đi vào. Bạn có thể sử dụng Lambda để triển khai nhiều chiến lược cấp quyền khác nhau (ví dụ xác thực JWT, lệnh gọi nhà cung cấp OAuth) để trả về chính sách IAM, chính sách này được dùng để cấp quyền cho yêu cầu. Nếu chính sách do trình cấp quyền trả về hợp lệ, API Gateway sẽ lưu bộ nhớ đệm chính sách được liên kết với mã thông báo đi vào trong 1 giờ.

Câu hỏi: Amazon API Gateway có thể tạo ra khóa API để phân phối cho nhà phát triển bên thứ ba không?

Có. API Gateway có thể tạo ra khóa API và liên kết chúng với kế hoạch sử dụng. Lệnh gọi nhận từ mỗi khóa API được giám sát và đưa vào Amazon CloudWatch Logs để bạn kích hoạt cho mỗi giai đoạn. Tuy nhiên, chúng tôi khuyến cáo bạn không nên sử dụng khóa API để cấp quyền. Bạn nên sử dụng khóa API để giám sát mức độ sử dụng của nhà phát triển bên thứ ba và sử dụng cơ chế mạnh hơn để cấp quyền, chẳng hạn như lệnh gọi API có chữ ký hoặc OAuth.

Câu hỏi: Làm thế nào để tôi xử lý hoặc ngăn chặn các đe dọa hoặc lạm dụng API?

API Gateway hỗ trợ thiết lập điều tiết cho từng phương thức hoặc định tuyến trên API của bạn. Bạn có thể thiết lập giới hạn tốc độ tiêu chuẩn và giới hạn tốc độ tăng tốc trên mỗi giây cho từng phương thức trên REST API và từng định tuyến trên WebSocket API. Hơn nữa, API Gateway tự động bảo vệ các hệ thống lớp backend của bạn trước các cuộc tấn công từ chối dịch vụ phân tán (DDoS), cho dù bị tấn công bằng yêu cầu giả mạo (Lớp 7) hoặc tấn công SYN floods (Lớp 3).

Câu hỏi: Tôi có thể xác minh rằng liệu đó có phải là API Gateway đang gọi lớp backend của tôi không?

Có. Amazon API Gateway có thể tạo chứng nhận SSL phía máy khách và cung cấp cho bạn khóa chứng nhận đó. Có thể thực hiện lệnh gọi đến lớp backend của bạn bằng chứng nhận được tạo ra và bạn có thể xác minh lệnh gọi bắt nguồn từ Amazon API Gateway bằng cách sử dụng khóa công khai của chứng nhận.

Câu hỏi: Tôi có thể sử dụng AWS CloudTrail với Amazon API Gateway không?

Có. Amazon API Gateway được tích hợp với AWS CloudTrail để cung cấp cho bạn lịch sử đầy đủ và có thể kiểm tra được về các thay đổi xảy ra với REST API của bạn. Toàn bộ các lệnh gọi API được gửi đến Amazon API Gateway API để tạo, chỉnh sửa, xóa hoặc triển khai REST API được ghi nhật ký vào CloudTrail trên tài khoản AWS của bạn.

Câu hỏi: Amazon API Gateway hoạt động với Amazon Virtual Private Cloud (Amazon VPC) như thế nào? 

Trên Amazon API Gateway, bạn có thể thiết lập proxy các yêu cầu gửi đến tài nguyên HTTP/HTTPS lớp backend đang chạy trên Amazon VPC bằng cách thiết lập Tích hợp riêng bằng Liên kết VPC. Có thể sử dụng chứng nhận SSL phía máy khách trên Amazon API Gateway để xác minh rằng yêu cầu gửi đến hệ thống lớp backend của bạn do API Gateway gửi bằng cách sử dụng khóa công khai của chứng nhận. Bạn cũng có thể tạo API Riêng trên Amazon API Gateway để chỉ cho phép tài nguyên trên Amazon VPC truy cập đến các API đó thông qua Điểm cuối Amazon VPC.

Câu hỏi: Tôi có thể giới hạn truy cập đến API riêng ở một điểm cuối Amazon VPC hoặc VPC không?

Có, bạn có thể áp dụng Chính sách tài nguyên với API để giới hạn truy cập đến một Amazon VPC hoặc điểm cuối VPC cụ thể. Bạn cũng có thể cấp cho Amazon VPC hoặc điểm cuối VPC từ một tài khoản khác quyền truy cập đến API Riêng bằng cách sử dụng Chính sách tài nguyên.

Câu hỏi: Tôi có thể cấu hình REST API của mình trên API Gateway để sử dụng TLS phiên bản 1.1 hoặc cao hơn không ?

Có, bạn có thể thiết lập một phân phối CloudFront bằng chứng nhận SSL tùy chỉnh trên tài khoản của bạn và sử dụng nó với API Khu vực trên API Gateway. Sau đó bạn có thể cấu hình Chính sách bảo mật cho phân phối CloudFront bằng TLS phiên bản 1.1 hoặc cao hơn dựa trên yêu cầu bảo mật và tuân thủ của bạn.

Quản lý, chỉ số và ghi nhật ký

Câu hỏi: Làm thế nào để tôi giám sát Amazon API Gateway API của mình?

Amazon API Gateway ghi nhật ký lệnh gọi API, độ trễ và tỷ lệ lỗi xảy ra với Amazon CloudWatch trên tài khoản AWS. Chỉ số cũng được cung cấp thông qua bảng điều khiển Amazon API Gateway trên bảng thông tin REST API. API Gateway cũng đo lường mức độ sử dụng của nhà phát triển bên thứ ba, dữ liệu có sẵn trên bảng điều khiển API Gateway và thông qua API.

Câu hỏi: Tôi có thể thiết lập cảnh báo trên các chỉ số Amazon API Gateway không?

Có, Amazon API Gateway gửi thông tin nhật ký và chỉ số tới Amazon CloudWatch. Bạn có thể sử dụng bảng điều khiển Amazon CloudWatch để thiết lập cảnh báo tùy chỉnh.

Câu hỏi: Làm thế nào để tôi thiết lập chỉ số cho Amazon API Gateway?

Mặc định, Amazon API Gateway giám sát lưu lượng ở cấp độ REST API. Cách khác, bạn có thể kích hoạt chỉ số chi tiết cho từng method trên REST API từ API cấu hình triển khai hoặc màn hình bảng điều khiển. Chỉ số chi tiết cũng được ghi nhật ký lên Amazon CloudWatch và bị tính phí theo mức phí CloudWatch.

Câu hỏi: Tôi có thể xác định phiên bản API nào khách hàng hiện đang sử dụng không?

Có. Chi tiết chỉ số được xác định theo REST API và giai đoạn. Ngoài ra, bạn có thể kích hoạt chỉ số cho từng method trên REST API.

Câu hỏi: Amazon API Gateway có hỗ trợ ghi nhật ký không?

Có. Amazon API Gateway tích hợp với Amazon CloudWatch Logs. Bạn có thể chọn kích hoạt ghi nhật ký cho từng giai đoạn trên API. Với mỗi method trên REST API, bạn có thể thiết lập độ chi tiết của nhật ký và có nên ghi nhật ký toàn bộ dữ liệu yêu cầu và phản hồi hay không.

Câu hỏi: Nhật ký được cung cấp nhanh tới mức nào?

Nhật ký, cảnh báo, tỷ lệ lỗi và các chỉ số khác được lưu trữ trên Amazon CloudWatch và được cung cấp gần theo thời gian thực.

Điều tiết và lưu bộ nhớ đệm

Câu hỏi: Làm thế nào để tôi bảo vệ hệ thống lớp backend và ứng dụng trước hiện tượng tăng lưu lượng đột ngột?

Amazon API Gateway cho phép điều tiết ở nhiều cấp độ khác nhau, bao gồm lệnh gọi tổng thể và theo dịch vụ. Có thể thiết lập giới hạn điều tiết cho tốc độ tiêu chuẩn và tốc độ tăng tốc. Ví dụ: chủ sở hữu API có thể thiết lập giới hạn tốc độ 1.000 yêu cầu mỗi giây cho một method cụ thể trên REST API, đồng thời cấu hình để Amazon API Gateway xử lý tốc độ tăng tốc 2.000 yêu cầu mỗi giây trong thời gian vài giây. Amazon API Gateway giám sát số lượng yêu cầu mỗi giây. Bất kỳ yêu cầu nào vượt quá giới hạn sẽ nhận được phản hồi 429 HTTP. SDK máy khách do Amazon API Gateway tạo ra sẽ tự động thử lại lệnh gọi khi đáp ứng phản hồi này.

Câu hỏi: Tôi có thể điều tiết các nhà phát triển riêng lẻ thực hiện gọi API của tôi không?

Có. Với kế hoạch sử dụng, bạn có thể thiết lập giới hạn điều tiết cho các khóa API riêng lẻ.

Câu hỏi: Điều tiết giúp ích cho tôi những gì?

Điều tiết đảm bảo lưu lượng API được kiểm soát để giúp dịch vụ lớp backend của bạn duy trì được hiệu suất và độ sẵn sàng.

Câu hỏi: Amazon API Gateway có thể điều tiết lưu lượng API đi vào ở mức nào?

Có thể thiết lập giới hạn tốc độ điều tiết ở mức method. Bạn có thể chỉnh sửa giới hạn điều tiết trên cài đặt method của bạn thông qua các API của Amazon API Gateway hoặc trên bảng điều khiển Amazon API Gateway.

Câu hỏi: Quy tắc điều tiết được áp dụng như thế nào?

Đầu tiên. API Gateway kiểm tra so với giới hạn tài khoản AWS của bạn. Nếu lưu lượng thấp hơn giới hạn tài khoản đã thiết lập, API Gateway kiểm tra giới hạn do bạn thiết lập cho giai đoạn hoặc method. Nếu lưu lượng thấp hơn giới hạn của giai đoạn, API Gateway áp dụng giới hạn của kế hoạch sử dụng do bạn thiết lập theo khóa của mỗi API.

Câu hỏi: Amazon API Gateway có hỗ trợ lưu bộ nhớ đệm kết quả API không?

Có. Bạn có thể thêm tính năng lưu bộ nhớ đệm vào lệnh gọi API bằng cách cung cấp bộ nhớ đệm API Gateway và chỉ định kích thước bộ nhớ này theo gigabyte. Bộ nhớ đệm được cung cấp cho giai đoạn cụ thể của API. Việc này giúp cải thiện hiệu suất và giảm lưu lượng gửi đến lớp backend của bạn. Thiết lập bộ nhớ đệm cho phép bạn kiểm soát cách thức tạo khóa bộ nhớ đệm và thời gian hiệu lực (TTL) của dữ liệu được lưu trữ cho mỗi method. API Gateway cũng cung cấp API quản lý để giúp bạn làm mất hiệu lực bộ nhớ đệm cho mỗi giai đoạn. Có thể sử dụng tính năng lưu bộ nhớ đệm cho REST API trong API Gateway.

Câu hỏi: Điều gì xảy ra nếu cùng một lúc có lượng lớn người dùng cuối cùng tìm cách gọi API của tôi?

Nếu lưu bộ nhớ đệm không bật và chưa áp dụng giới hạn điều tiết, toàn bộ các yêu cầu sẽ gửi đến dịch vụ dịch vụ lớp backend của bạn cho đến khi đạt đến giới hạn điều tiết mức tài khoản. Nếu đã áp dụng giới hạn điều tiết, Amazon API Gateway sẽ loại bỏ số lượng yêu cầu cần thiết và chỉ gửi giới hạn yêu cầu đã định nghĩa đến dịch vụ lớp backend của bạn. Nếu đã cấu hình bộ nhớ đệm, Amazon API Gateway sẽ trả về phản hồi đã lưu bộ nhớ đệm cho những yêu cầu trùng lặp trong khoảng thời gian tùy chỉnh, nhưng chỉ khi thấp hơn giới hạn điều tiết đã cấu hình. Việc cân bằng giữa lớp backend và máy khách đảm bảo hiệu suất tối ưu của API cho những ứng dụng được hỗ trợ. Những yêu cầu được điều tiết sẽ được tự động thử lại bởi SDK phía máy chủ do Amazon API Gateway tạo ra. Mặc định, Amazon API Gateway không thiết lập bất kỳ bộ nhớ đệm nào trên các method của API.

Câu hỏi: API thay đổi quy mô như thế nào?

Amazon API Gateway đóng vai trò là một proxy tới các thao tác lớp backend bạn đã cấu hình. Amazon API Gateway sẽ tự động thay đổi quy mô để xử lý lưu lượng API của bạn nhận được. Amazon API Gateway không tự ý giới hạn hoặc điều tiết các lời gọi đến các thao tác lớp backend của bạn và toàn bộ các yêu cầu chưa bị chặn bởi thiết lập điều tiết và lưu bộ nhớ đệm trên bảng điều khiển Amazon API Gateway được gửi đến thao tác lớp backend của bạn.

Tính phí

Câu hỏi: Tôi sẽ bị tính phí như thế nào khi sử dụng Amazon API Gateway?

Amazon API Gateway tính phí trên mỗi một triệu lệnh gọi API, cộng với chi phí truyền dữ liệu ra, tính theo gigabyte. Nếu bạn chọn cung cấp bộ nhớ đệm cho API, mức phí theo giờ sẽ được áp dụng. Đối với WebSocket API, tính phí API Gateway dựa trên các tin nhắn đã gửi và nhận được cũng như số phút máy khách kết nối với API. Vui lòng tham khảo trang Giá của API Gateway để biết chi tiết về phí truy vấn API, truyền dữ liệu và lưu bộ nhớ đệm theo vùng.

Câu hỏi: Ai trả phí cho lệnh gọi API của Amazon API Gateway do nhà phát triển bên thứ ba tạo ra?

Chủ sở hữu API bị tính phí đối với lệnh gọi đến API trên API Gateway.

Câu hỏi: Nếu sử dụng dữ liệu lưu bộ nhớ đệm thì phản hồi API có được coi là lệnh gọi API khi tính phí không?

Có. Các lệnh gọi API được coi như nhau khi tính phí, cho dù phản hồi được xử lý bởi thao tác lớp backend hoặc thao tác lưu bộ nhớ đệm của Amazon API Gateway.

WebSocket API

Câu hỏi: Định tuyến WebSocket trong Amazon API Gateway là gì?

Định tuyến WebSocket trong Amazon API Gateway được sử dụng để định tuyến chính xác các tin nhắn tới một tích hợp cụ thể. Bạn sẽ chỉ rõ một khóa định tuyến và backend tích hợp để gọi ra khi xác định WebSocket API của bạn. Khóa định tuyến là một thuộc tính trong nội dung tin nhắn. Cũng có thể thiết lập tích hợp mặc định đối với các khóa định tuyến không khớp. Tham khảo tài liệu để tìm hiểu thêm về định tuyến.

Câu hỏi: Từ dịch vụ backend, tôi có thể gửi tin nhắn tới các máy khách đã kết nối như thế nào?

Khi một máy khách được kết nối với WebSocket API, máy khách đó sẽ được tạo một URL duy nhất, được gọi là URL callback. Bạn có thể sử dụng URL callback này để gửi tin nhắn tới máy khách từ dịch vụ backend.

Câu hỏi: Tôi có thể cho phép truy cập vào WebSocket API trong Amazon API Gateway bằng cách nào?

Với Amazon API Gateway, bạn có thể sử dụng các chính sách và vai trò IAM hoặc Công cụ cho phép AWS Lambda để cấp quyền truy cập vào WebSocket API của mình.

Câu hỏi: Làm cách nào để dịch vụ backend của tôi biết khi một máy khách kết nối hoặc ngắt kết nối khỏi WebSocket trong Amazon API Gateway?

Khi máy khách kết nối hoặc ngắt kết nối, dịch vụ Amazon API Gateway sẽ gửi một tin nhắn tới chức năng AWS Lambda lớp backend hoặc điểm cuối HTTP của bạn bằng các bộ định tuyến $kết nối và $ngắt kết nối. Bạn có thể thực hiện hành động phù hợp như thêm hoặc xóa máy khách trong danh sách người dùng đã kết nối.

Câu hỏi: Làm cách nào để dịch vụ backend của tôi xác định được nếu máy khách vẫn kết nối với WebSocket??

Bạn có thể dùng phương thức GET sử dụng URL callback (gọi lại) khi kết nối để xác định nếu máy khách vẫn kết nối với WebSocket. Tham khảo tài liệu về việc sử dụng URL callback.

Câu hỏi: Tôi có thể ngắt kết nối máy khách với dịch vụ backend của mình không?

Có, bạn có thể ngắt kết nối máy khách đã kết nối với dịch vụ backend của mình bằng hàm URL callback (gọi lại).

Câu hỏi: Kích thước tin nhắn tối đa được hỗ trợ cho WebSocket API là gì?

Kích thước tin nhắn được hỗ trợ tối đa là 128 KB. Tham khảo tài liệu để biết các giới hạn khác đối với WebSocket API.

Câu hỏi: Tôi sẽ bị tính phí như thế nào khi sử dụng WebSocket API trên Amazon API Gateway?

Bạn sẽ được tính phí dựa trên 2 số liệu: Số phút kết nối và số tin nhắn.

Số phút kết nối: Tổng số phút máy khách hoặc thiết bị kết nối với WebSocket (làm tròn thành phút).

Tin nhắn: Tổng số tin nhắn đã gửi và nhận được từ máy khách kết nối. Tin nhắn được tính bằng gia số 32 KB. Tham khảo trang giá để biết chi tiết về giá và các ví dụ của WebSocket API.

Câu hỏi: Nếu các tin nhắn không xác thực hoặc ủy quyền được trong khi kết nối WebSocket, thì có được tính vào hóa đơn sử dụng API của tôi không?

Không, nếu tin nhắn không xác thực hoặc ủy quyền được trong khi kết nối WebSocket thì sẽ không được tính vào hóa đơn sử dụng API của bạn.

Tìm hiểu thêm về Amazon API Gateway

Truy cập trang giá
Bạn đã sẵn sàng để bắt đầu chưa?
Đăng ký
Bạn có thêm câu hỏi?
Hãy liên hệ chúng tôi