【发布时间】:2019-09-28 04:20:39
【问题描述】:
我使用无服务器 Zappa 框架运行部署在 AWS lambda 上的 Django 项目。这可以通过从 AWS API Gateway 随机生成的链接来访问,比如说:-
随机生成-link.aws.amazon.com/production
我还从 ACM 创建了一个 SSL 证书,并用我的域进行了验证,比如说
example.com
现在当我运行 zappa certify 时,此命令成功验证我的域并在 API 网关控制台下使用以下配置创建自定义域:-
端点配置边缘优化
目标域名 d25ihv8a5022zi.cloudfront.net
托管区域 ID A2FDTNGATAQYW6
ACM 证书 example.com (c504428e)
现在,我需要将我的域名example.com 指向randomly-generated-link.aws.amazon.com/production,所以我用 CNAME 更新了我在 Godaddy 上的记录如下:-
类型 - CNAME 名称 - example.com 值 - d25ihv8a5022zi.cloudfront.net TTL - 1 小时
预期结果 - 我在 randomly-generated-link.aws.amazon.com 上运行的应用程序显示可以从 example.com 访问。
我得到了什么 - 403 错误 无法满足请求。错误的请求。 由云端(CloudFront)生成
编辑:- 所以我摆脱了 zappa 创建的自定义域并手动创建了新的云端分发,如下所示:-
投递方式-Web域名-d35ihv8a5022fe.cloudfront.net 来源-随机生成-link.aws.amazon.com/production cNAMES- example.com 状态 - 已部署状态 - 已启用
我这样做是因为 zappa 生成的云端分发隐藏在 AWS 控制台中。但是,当我在浏览器中检查地址并且新创建的分发端点重定向到我的应用程序时,我注意到 Zappa 生成的分发端点被禁止。
不过,访问 example.com 时出现 403 错误。
【问题讨论】:
-
只是为了确保 example.com 作为 CNAME 添加到 Cloudfront 并且 HOST 标头未列入白名单。
-
是的,我已将 CNAME 中的 example.com、www.example.com 添加到 CloudFront。还检查了“cloudfront>behaviors tab> cache based on selected request headers --None”被选中
-
移动到 Route 53 并添加 CNAME 和别名后。我碰巧访问了 www.example.com,它在 random-generated-link.aws.amazon.com/production 重定向到我的应用程序。我该如何掩饰这个?我是否必须更改任何云端设置来掩盖这一点?
标签: aws-lambda aws-api-gateway http-status-code-403 zappa amazon-cloudfront