我使用无服务器Zappa框架在AWS Lambda上部署了一个Django项目。可以通过AWS API网关的随机生成的链接来访问这一点: -
随机生成link.aws.amazon.com/production
我还从ACM创建了SSL证书,并用我的域进行了验证,请说
example.com
现在,当我运行Zappa认证时,此命令成功证明我的域,并在API网关控制台下使用以下配置创建自定义域: -
端点配置边缘优化
目标域名 d25ihv8a50222zi.cloudfront.net
托管区域ID a2fdtngataqyw6
ACM证书 example.com(C504428E(
现在,我需要将我的域名example.com
指向randomly-generated-link.aws.amazon.com/production
,因此我用Cname在GoDaddy上更新了记录,如下所示: -
类型 - cname name -example.com value -d25ihv8a50222zi.cloudfront.net TTL -1小时
预期结果 - 我的应用程序在 randomly-generated-link.aws.amazon.com
上运行的应用程序可以从 example.com
访问。
我得到的-403错误该请求无法满足。错误的请求。由CloudFront(CloudFront(
生成编辑: - 因此,我摆脱了Zappa创建的自定义域,并手动创建了新的CloudFront分发,如下所示: -
交付方法 - Web域名-D35IHV8A5022FE.CLOUDFRONT.NET 来源 - 随机生成的link.aws.amazon.com/生产cnames- example.com状态 - 部署状态 - 启用
我之所以这样做,是因为Zappa生成的CloudFront Distribution隐藏在AWS控制台中。但是,我注意到Zappa生成的分布端点时,当我在浏览器中检查地址并将新创建的分布端点重定向到我的应用程序时。
。仍然,去example.com给我403错误。
它不再是DNS问题了,可能是因为Edge优化使用CloudFront,并且需要一些时间将新的自定义域部署到所有边缘位置?启用自定义域名后,您等待了多长时间?
- 在调试时,我喜欢保持TTL尽可能短。我将CNAME TTL设置为1分钟
- 检查API-GATEWAY自定义域名是否已列出您的域,并且您的基本路径映射正确设置了。
基本路径映射
路径/
目的地[lambda端点]。[生产]
如果可能的话,在Route53
显然,我使它起作用。将我的域名服务器移至Route53,并在zappa_settings.json
中添加
" Route53_Enabled":true
并使用zappa certify production
命令再次重新认证。
不得不等待40分钟,它可以工作!
,尽管我不知道为什么当域管理与Godaddy在一起时它不起作用。假设Route53目前是一个快速的解决方法。