通过 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 分发的主要内容,如果未能解决你的问题,请参考以下文章

如何将域中的多个路径重定向到不同的 AWS 负载均衡器?

如何将域从 Godaddy 移动到 AWS Route 53

AWS CloudFront 如何遵循 S3 存储桶重定向规则?

如何将域连接到 aws whm

Amazon S3 无法通过 Cloudfront 上传文件

如何将域指向路径或路由? AWS Elastic BeanStalk 和 Route 53