ndk*_*-fj 4 amazon-web-services amazon-cloudfront aws-lambda
我已经设置了 lambda 函数 url 和 cloudfront 系统
Redirect HTTP to HTTPSGET, HEADNoManaged-CachingDisabledAllViewer然而,结果总是403 Forbidden以这个身体返回
{ "Message": null }
Run Code Online (Sandbox Code Playgroud)
还有这个标题
X-cache: Error from cloudfront
x-amzn-ErrorType: AccessDeniedException
Run Code Online (Sandbox Code Playgroud)
是否有任何我错过的设置导致此错误?我已经测试使用邮递员和浏览器直接点击函数 url,它工作正常
更新- 在您的源请求策略中,设置新的AllViewerExceptHost托管策略。这将转发除标题之外的所有查看器标题Host。建议您将此与CachingDisabled托管缓存策略配对。
问题可能是您通过附加到缓存行为的AllViewer源请求策略 (ORP)将Host标头转发到您的源(Lambda 函数 URL) 。
为什么会出现这种情况?您正在使用AllViewer源请求策略,该策略将从查看器收到的所有 HTTP 请求标头转发到您的源。d123.cloudfront.net因此,当 CloudFront 处理\xe2\x80\x94 或example.com配置的 CNAME\xe2\x80\x94请求时,CloudFront会将HostHTTP 请求标头中的该值转发到您的 Lambda 函数 URL 源。由于没有解析为该名称的函数 URL,Lambda 无法找到该函数并返回 403 Access Denied。
如何解决:创建一个仅转发您需要的标头的自定义源请求策略,而不是附加AllViewer源请求策略。重要的是,不要转发Host标头。配置完成后,CloudFront 将使用您的源主机名作为 Lambda 能够解析的主机标头\xe2\x80\x94。
| 归档时间: |
|
| 查看次数: |
2340 次 |
| 最近记录: |