问题描述
我在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时的条件。
解决方法
您可以在CloudFormation上创建custom resource。资源将采用 lambda函数的形式。该功能将使用AWS开发工具包,例如boto3
对所需的R53资源执行操作。
由于该功能是由您自己开发的,而不是由AWS提供的,因此自定义资源可以执行您想要执行的任何操作。它不受常规CloudFormation缺点的限制。