Aws lambda Django Zappa生成的cloudfront生成403错误

Aws lambda Django Zappa生成的cloudfront生成403错误,aws-lambda,aws-api-gateway,http-status-code-403,zappa,amazon-cloudfront,Aws Lambda,Aws Api Gateway,Http Status Code 403,Zappa,Amazon Cloudfront,我使用无服务器Zappa框架运行部署在AWS lambda上的Django项目。可以通过AWS API Gateway随机生成的链接进行访问,例如:- 随机生成-link.aws.amazon.com/production 我还从ACM创建了一个SSL证书,并用我的域验证了它 example.com 现在,当我运行zappa certifite时,该命令将成功验证我的域,并在API网关控制台下创建一个自定义域,配置如下:- 端点配置边缘优化 目标域名d25ihv8a5022zi.cloudfro

我使用无服务器Zappa框架运行部署在AWS lambda上的Django项目。可以通过AWS API Gateway随机生成的链接进行访问,例如:-

随机生成-link.aws.amazon.com/production

我还从ACM创建了一个SSL证书,并用我的域验证了它

example.com

现在,当我运行zappa certifite时,该命令将成功验证我的域,并在API网关控制台下创建一个自定义域,配置如下:-

端点配置边缘优化

目标域名d25ihv8a5022zi.cloudfront.net

托管区域IDA2FDTNGATAQYW6

ACM证书example.com(c504428e)

现在,我需要将我的域名
example.com
指向
随机生成的link.aws.amazon.com/production
,因此我用CNAME更新了我在Godaddy上的记录,如下所示:-

类型-CNAME名称-example.com值-d25ihv8a5022zi.cloudfront.net TTL-1小时

预期结果-在
随机生成的link.aws.amazon.com
上运行的我的应用程序可以从
example.com
访问

我得到的是-403错误 这项要求未能得到满足。请求错误。 由cloudfront生成(cloudfront)

编辑:-因此我放弃了zappa创建的自定义域,并手动创建了新的cloudfront发行版,如下所示:-

交付方式-Web域名-d35ihv8a5022fe.cloudfront.net 来源-随机生成-link.aws.amazon.com/production-cNAMES- example.com状态-已部署状态-已启用

我这样做是因为zappa生成的cloudfront发行版隐藏在AWS控制台中。然而,当我在浏览器中检查地址时,我注意到Zappa生成的分发端点被禁止,并且新创建的分发端点重定向到我的应用程序

不过,转到example.com会给我403错误。

  • 在调试时,我喜欢尽可能地缩短TTL。我将CNAME TTL设置为1分钟
  • 检查api网关自定义域名是否列出了您的域,以及基本路径映射是否设置正确
基路径映射

路径/
目的地[lambda端点]。[制作]


如果可能的话,将域托管在route53上也可能是一个好主意。这不再是DNS问题,是不是因为Edge optimized使用CloudFront,并且将新的自定义域部署到所有边缘位置需要一些时间?启用自定义域名后,您等待了多长时间?

显然,我已经让它工作了。将我的域名服务器移动到route53,并在
zappa\u settings.json
中添加

“路由53_已启用”:真

并使用
zappa certified production
命令重新认证

必须等待40分钟,它的工作


尽管如此,我不知道当域管理与godaddy在一起时,为什么它不起作用。假设route53目前是一个快速解决方案

此外,“d25ihv8a5022zi.cloudfront.net”无法解析,您是否删除了配置?已超过12小时,AWS控制台上的状态显示已部署。出于安全原因,我在问题中更改了CloudFront端点。我在Godaddy控制台上将TTL更改为600秒。现在我已经在cloudfront上创建了新的发行版(请检查编辑的问题),api网关的自定义域不允许创建新域,并给出“发生了意外错误”。您可能需要删除自定义域名中的名称,然后使用zappa重新部署。你能在测试时把TTL降到60吗?等待dns是一件痛苦的事:)当我试图使Godaddy控制台变为60时,它会变灰。我想最少600英镑。那么,当我使用Zappa重新部署/重新认证时,自定义创建的发行版会发生什么情况?Zappa默认处理这个问题吗?据我所知,cloudfront发行版是在api网关的幕后进行的。当您重新部署时,您可能会得到一个新的cloudfront分发名称。”调用CreateDomainName操作时发生错误(TooManyRequestsException)(达到最大重试次数:4):请求太多“现在我在尝试验证时遇到此错误。不过我现在已经转到了路由53。只是为了确保example.com作为CNAME添加到Cloudfront,并且主机头没有被列入白名单。是的,我已经将example.com、www.example.com作为CNAME添加到Cloudfront。在移动到路由53并添加带别名的CNAME后,还选中了“cloudfront>行为选项卡>基于所选请求头的缓存--无”。我碰巧访问了www.example.com,它重定向到我的应用程序,地址是random-generated-link.aws.amazon.com/production。我该如何掩盖这一点?我是否必须更改任何cloudfront设置以屏蔽此功能?