保护S3静态站点托管重定向到lambda

时间:2018-02-02 01:06:46

标签: amazon-web-services amazon-s3 aws-lambda

我目前正在S3 Bucket中运行静态网站,当404发生时,该网站会重定向到Lambda。这个解决方案的问题是Lambda函数必须打开它才能调用,因为我无法提供x-api-key标头,因为我可以收集重新路由规则集上的S3静态托管不会启用标头附加对请求。

基本上我只是试图锁定Lambda函数,只能通过我们的请求调用,同时坚持我们正在使用的当前静态站点托管路由。这是我预见的解决此问题的两种方法。

  1. 找出一种向重定向添加标题的方法。
  2. 确定请求的来源并验证之前运行lambda函数。
  3. 非常感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

您可以在S3上创建自定义静态404.html页面,并在此页面中使用Javascript来使用Ajax调用Lambda函数。然后,您可以使用对Lambda的Ajax请求中的任何方法,标头和数据。您甚至可以使用LocalStorage来使用有关您用户的数据,以便自定义Lambda请求/响应,甚至可以决定是重定向用户还是执行其他操作。

如果您未使用CloudFront,则可以设置错误页面like in this pictureCredits to @Geander)。如果您使用的是CloudFront,请按照此AWS docs

进行操作