我目前正在S3 Bucket中运行静态网站,当404
发生时,该网站会重定向到Lambda。这个解决方案的问题是Lambda函数必须打开它才能调用,因为我无法提供x-api-key
标头,因为我可以收集重新路由规则集上的S3静态托管不会启用标头附加对请求。
基本上我只是试图锁定Lambda函数,只能通过我们的请求调用,同时坚持我们正在使用的当前静态站点托管路由。这是我预见的解决此问题的两种方法。
非常感谢任何帮助。
答案 0 :(得分:0)
您可以在S3上创建自定义静态404.html
页面,并在此页面中使用Javascript来使用Ajax调用Lambda函数。然后,您可以使用对Lambda的Ajax请求中的任何方法,标头和数据。您甚至可以使用LocalStorage来使用有关您用户的数据,以便自定义Lambda请求/响应,甚至可以决定是重定向用户还是执行其他操作。
如果您未使用CloudFront,则可以设置错误页面like in this picture(Credits to @Geander)。如果您使用的是CloudFront,请按照此AWS docs。
进行操作