通过 API 将域添加到 AWS Cloudfront 分发
Posted
技术标签:
【中文标题】通过 API 将域添加到 AWS Cloudfront 分发【英文标题】:Adding Domains to AWS Cloudfront Distribution Via API 【发布时间】:2021-09-30 05:40:32 【问题描述】:我有一个软件应用程序,我希望允许客户为该应用程序贴上白标签,以便他们可以转售它。为此,他们会从他们的网站中选择一个自定义域(或子域)来运行我的应用程序。
我正在使用 CloudFront 和 AWS 证书管理器在 AWS 上运行此应用程序来管理 SSL。我可以手动将“备用域名”添加到 CloudFront 分配中,但如果可能的话,我希望通过 API 来完成,因此没有“手动”更新。这可能吗?
此外,也许更重要的是,我需要找到一种可扩展的方式来复制我的 SSL 证书,以便所有现有域都保持认证,但我可以简单地“添加”一个……理想情况下是通过 API,但我明白这可能是一项手工作业。
关键是,我需要能够以编程方式将域添加到我的云端分发。如果我必须手工制作所有东西,我担心这是一个犯错的机会。
【问题讨论】:
【参考方案1】:您可以使用以下命令通过 aws cli 执行此操作:https://awscli.amazonaws.com/v2/documentation/api/latest/reference/cloudfront/update-distribution.html。
类似这样的:
aws cloudfront update-distribution \
--id EMLARXS9EXAMPLE \
--distribution-config file://dist-config-disable.json
dist-config-disable.json
的内容包括新的别名(域名),如下所示(为简洁起见,将此文件缩写):
...
"Aliases":
"Quantity": 2,
"Items": ["example.com", "example2.com"]
,
...
【讨论】:
这太好了!谢谢。那么“dist-config-disable.json”会是整个发行版的完整配置,还是我只使用备用域动态创建文件,然后在 API 调用中引用它?也许像导出 -> 修改 -> 导入:docs.aws.amazon.com/cli/latest/reference/acm/… 我疯了吗? 老实说,我会使用基础设施作为代码工具(可能是 terraform)来解决这个问题,而不是编写定制的应用程序/脚本 另外,如果我的回答对您有帮助,您能接受并点赞吗?谢谢! @MarkSinapi 嘿,谢谢!我还不能,因为我的名声不够高。对不起。以上是关于通过 API 将域添加到 AWS Cloudfront 分发的主要内容,如果未能解决你的问题,请参考以下文章
如何将域从 Godaddy 移动到 AWS Route 53
AWS CloudFront 如何遵循 S3 存储桶重定向规则?