如何将AWS CloudFront和API Gateway并排用于同一个域?

时间:2017-03-18 21:26:29

标签: amazon-web-services amazon-cloudfront aws-api-gateway

我将我网站的静态资产放在S3上,并设置CloudFront来分发它们。这些基本上保留了用户在我的网站上对任何GET请求所需的内容,以及现有的路径,这些路径可能会出现错误。

我还需要处理一些POST请求。表单提交,发送电子邮件,通知,与数据库交互。

如何为同一个域与CloudFront并排设置Lambda(或API网关),以便CloudFront处理GET请求,API Gateway处理带有正文或POST请求的请求。或者我可以通过个别网址以某种方式进行此操作吗?

1 个答案:

答案 0 :(得分:6)

在CloudFront中创建分发并使其与S3一起使用。

然后添加第二个原点,指向API网关中指定的主机名。

然后在CloudFront中使用API​​网关源创建第二个缓存行为,将其设置为API Gateway期望的相应路径模式(例如/api/*),并将其配置为转发所有方法(GET,POST) ,PUT等...默认只有GET和HEAD,但是有一个单选按钮可以启用所有方法)。你可能想要转发一些标题,所以选择那些...但不要转发原始主机标题,因为这不起作用。您可能还想转发查询字符串或cookie,并且需要在同一屏幕上启用它们。

这就是它。 CloudFront根据路径匹配将请求发送到适当的后端。