首页 > 解决方案 > 我可以在 CloudFormation 中创建一个运行 aws cli 命令来更新注册域的名称服务器的 lambda 函数吗?

问题描述

我在我的 Route53 中注册了一个域 example.com,现在我创建了一个 CloudFormation 堆栈,该堆栈创建了一个名为 example53 的托管区域,一个 A 记录 example.com 将流量路由到我的 ALB 和一个应该验证 example.com 域的 ACM 资源。

问题是,如果名称服务器错误并且在 ACM 资源之前我需要使用 NS 记录在我的托管区域中的名称服务器更新在我的 Route53 中注册的域的名称服务器,它将永远不会验证域。

没有 CloudFormation 域资源操作,但有一个 AWS CLI 命令可以更改域的名称服务器,有没有办法可以使用在 CloudFormation 中创建的 Lambda 资源运行该 AWS CLI 命令?

我用 Makefile 运行堆栈,Makefile 可以运行 AWS CLI 命令并实现诸如首次创建 HostedZone 的条件。

标签: amazon-cloudformation

解决方案


您可以在 CloudFormation 上创建自定义资源。该资源将采用lambda 函数的形式。该函数将使用 AWS 开发工具包,例如boto3对您需要的 R53 资源执行操作。

由于该功能是由您开发的,而不是 AWS 提供的,因此自定义资源可以做任何您想做的事情。它不受常规 CloudFormation 缺点的限制。


推荐阅读