在S3 HTTPS存储桶上调用AWS Lambda函数时发生CORS错误

时间:2018-09-16 12:17:09

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

我正在按照以下说明在我的AWS网站上设置联系表单:https://aws.amazon.com/en/blogs/architecture/create-dynamic-contact-forms-for-s3-static-websites-using-aws-lambda-amazon-api-gateway-and-amazon-ses/

从网站调用函数时出现CORS错误:

Failed to load https://xxxxxxxxxx.execute-api.eu-west-1.amazonaws.com/contactform1: Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://example.com' is therefore not allowed access.

Lambda函数在测试时可以正常工作,我确实激活了CORS并在API Gateway中部署了API。我还在S3存储桶中配置了CORS,允许GET和HEAD方法以及授权标头。

我不确定错误是从哪里来的,我猜是我正在使用Cloudfront通过https提供我的内容,但是我无法正确配置它来使用lambda。我试图在Cloudfront中关联lambda函数,但它要求我的函数位于“ us-east-1”区域,因为我的存储桶位于欧盟区域,因此lambda必须与桶。

错误是否来自Cloudfront?在Cloudfront中关联lambda函数是否必要?我的配置有什么问题?

0 个答案:

没有答案