2016-04-07 18 views
5

Tôi đang tạo api bằng API Gateway và Lambda. Sử dụng url được chỉ định trong trình soạn thảo API Gateway Stage, mọi thứ hoạt động tốt; tuy nhiên, khi tôi thử và chuyển sang miền tùy chỉnh, tôi đang gặp phải một số vấn đề.Miền tùy chỉnh cho Cổng API quay lại 403

Điều đầu tiên tôi đã thử là sử dụng bản ghi CNAME trong Tuyến đường 53 trực tiếp từ miền của tôi trên miền mà tôi nhận được từ Cổng API. Điều đó đã trả lại một số lỗi và tôi nghĩ rằng đó là giải pháp không đúng là chính xác?

Tiếp theo, tôi đã thử tính năng Tên miền tùy chỉnh trong Cổng API. Sự hiểu biết của tôi là điều này sẽ cuộn lên bản phân phối CloudFront mà tôi có thể ánh xạ lên từ Tuyến 53. Khi tôi tạo miền tùy chỉnh và thêm Ánh xạ miền, nó cung cấp cho tôi một url với những gì tôi cho là phân bố CloudFront. Liên kết này trả về phản hồi 403 và không có phân phối nào được thực hiện trong CloudFront. Một cách hay để gỡ lỗi vấn đề này là gì?

+2

Bạn luôn có phân phối CloudFront khi bạn đang sử dụng API Gateway, không chỉ khi bạn bật URL tùy chỉnh. Bạn sẽ không nhìn thấy nó trong bảng điều khiển CloudFront của bạn bởi vì nó được quản lý đằng sau hậu trường và bạn không có quyền truy cập trực tiếp vào nó. –

+0

Được rồi. Điều đó và thực tế là tôi đã không chờ đợi đủ lâu để CloudFront cuộn lên là những vấn đề. Tôi đến vào sáng nay và nó đã hoạt động. – Banner

Trả lời

7

Đây là hướng dẫn dành cho nhà phát triển nếu bạn chưa xem. http://docs.aws.amazon.com/apigateway/latest/developerguide/how-to-custom-domains.html

Tất cả những gì bạn cần làm là thiết lập CNAME với nhà cung cấp DNS trỏ tới bản phân phối CF API Gateway cung cấp cho bạn. Bạn sẽ không thể thực hiện cuộc gọi API trực tiếp đến bản phân phối CF. API Gateway ánh xạ API/giai đoạn từ ánh xạ đường dẫn cơ sở mà bạn đã thiết lập trong API Gateway để chỉ các cuộc gọi API được hướng vào tên miền sẽ hoạt động chính xác.

0

vấn đề liên quan:

chính xác dưới đây phản ứng:

{"message":"Forbidden"} 

trong trình duyệt

F12 > Network > (select error line) > Response (on right side) 

có thể có nghĩa
rằng, cái gì là sai, trong đường dẫn url

3

Bạn cần sử dụng tiêu đề máy chủ trong yêu cầu của bạn. Máy chủ lưu trữ phải là miền tùy chỉnh của bạn.

curl https://<cf-id>.cloudfront.net/myapi -H "Host: api.myapi.com" 
+0

thêm tiêu đề Máy chủ là phần bị thiếu cho tôi. Tôi có một khóa API cần thiết cho APIG và đã cung cấp tiêu đề tùy chỉnh x-api-key, nhưng không có tiêu đề Máy chủ, yêu cầu luôn bị cấm khi sử dụng cloudfront –

+0

Đây là câu trả lời thực sự! –

1

Trong trường hợp của tôi, tôi phải thêm ánh xạ đường cơ sở.

Các vấn đề liên quan