我正在使用API Gateway和Lambda创建一个api。使用API Gateway Stage编辑器中指定的url一切正常;但是,当我尝试移动到自定义域时,我遇到了一些问题。
我尝试的第一件事就是使用Route 53中的CNAME记录直接从我的域到我从API网关获得的域。那是一些错误,我认为这是不正确的解决方案是正确的吗?
接下来,我尝试了API网关中的自定义域名功能。我的理解是,这将卷起一个CloudFront分配,然后我可以从Route 53映射到。当我创建自定义域并添加了域映射时,它为我提供了一个我认为是CloudFront分发的URL。该链接返回403响应,并且未在CloudFront中进行分发。调试此问题的好方法是什么?
答案 0 :(得分:14)
如果您还没有看到它,请参阅开发人员指南。 http://docs.aws.amazon.com/apigateway/latest/developerguide/how-to-custom-domains.html
您需要做的就是设置一个CNAME,DNS提供商指向API网关为您提供的CF分发。您将无法直接向CF分发进行API调用。 API网关从您在API网关中设置的基本路径映射映射API /阶段,因此只有针对域名的API调用才能正常工作。
答案 1 :(得分:11)
您需要在请求中使用主机标头。主机应该是您的自定义域。
curl https://<cf-id>.cloudfront.net/myapi -H "Host: api.myapi.com"
答案 2 :(得分:5)
在我的情况下,我必须添加基本路径映射。
答案 3 :(得分:0)
相关问题:
正好低于回应:
{"message":"Forbidden"}
浏览器中的
F12 > Network > ( select error line) > Response (on right side)
可能意味着 在url路径
中出现问题