在使用AWS CloudFormation部署服务器less Web应用或者其他AWS云资源时,嵌套栈是维护云代码的重要工具之一。然而,AWS的嵌套堆栈及其编写的开销很大,难以维护。但是,有了NPM包cfn-nest,嵌套堆栈的创建变得非常容易,也更容易理解和维护。
cfn-nest简介
cfn-nest是一个NPM包,它提供了一种简单的方式来创建AWS CloudFormation嵌套堆栈。cfn-nest包含两个最重要的功能:
集成其他CloudFormation模板 - 您可以使用cfn-nest将多个CloudFormation模板组合成一个堆栈。这种集成方式被称为嵌套堆栈。
轻松创建嵌套堆栈 - 您可以使用cfn-nest轻松地编写和创建嵌套堆栈,而不需要编写大量的AWS CloudFormation代码。
安装cfn-nest
首先要确保您已经安装了Node.js。如果尚未安装,您可以在此处获得下载链接。
打开控制台并运行以下命令来安装cfn-nest:
npm install -g cfn-nest
创建一个嵌套堆栈
考虑以下情况:您想要在AWS CloudFormation模板中创建一个嵌套堆栈。您希望此堆栈仅包含一些仅在特定环境中使用的资源(例如测试或开发)。
下面是如何使用cfn-nest在主堆栈中嵌套一个堆栈:
第一步是创建我们的子堆栈 - 测试环境,我们将其命名为“test.yaml”。对于此过程,您可以使用AWS CloudFormation Designer或熟悉的IDE。
将以下代码添加到主堆栈中:
-- -------------------- ---- ------- ---------- ---------- ----- ---------------------------- ----------- ------------ ------------------------------------------- ----------------- ---- ----------- ----- ------ ----- ------
稍等一会儿以便CloudFormation下载并部署嵌套堆栈。
示例代码
考虑以下情况:您需要在AWS CloudFormation模板中创建一个嵌套堆栈,并将一个IAM用户添加到新堆栈。下面是一个将IAM用户添加到子堆栈的示例代码:
创建子堆栈(例如,test-env.yaml),它将IAM用户添加到环境中:
-- -------------------- ---- ------- ---------- ----- ----- ---------------- ----------- --------- --------- ------- - ---------- ------ ----- ----------------- ----------- ---------- ---------- ------ -----------
在主堆栈中添加一个嵌套堆栈的资源:
-- -------------------- ---- ------- ---------- ---------- ----- ---------------------------- ----------- ------------ ----------------------------------------- ----------------- ---- ----------- ----- ------ ----- ------
现在,我们已经在AWS CloudFormation主堆栈和子堆栈中创建了IAM用户并将其添加到组中。
结论
AWS CloudFormation非常强大,但难以维护和管理。使用cfn-nest可以让我们轻松创建并维护AWS CloudFormation嵌套堆栈,而不需要大量AWS CloudFormation代码。在本文中,我们展示了如何使用cfn-nest将两个堆栈组合在一起,以及如何向子堆栈添加IAM用户。这对于计划部署多个云资源的开发团队来说,可以简化AWS CloudFormation编写和维护的工作。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/600672603660cf7123b36463