我目前正在使用Cloudformation模板来提供AWS中的资源。
目前,如果我需要创建一个VPC和Security,首先我将从一个模板创建VPC,然后再次为安全组启动另一个模板,在其中手动输入VPC ID。
现在,我需要在Cloudformation中自动化这个手动过程。我该怎么做?我可以使用AWS开发工具或其他自动化工具吗?
发布于 2019-05-19 15:16:57
简短回答
您需要遵循输出您创建的任何AWS资源的an /名称的实践,因此如果稍后需要它们,可以通过在新模板中进行导入来轻松地通过一个简单的引用来实现这一点。
正如Nimo在上面的回答中所解释的那样,为此,您将需要对任何您希望重用的资源使用Outputs部分中的所有模板使用Outputs函数。然后,您可以轻松地使用Fn::ImportValue来使用先前创建的资源,而无需知道资源的实际物理ID。这被称为跨堆栈引用。
对自动化部分的解释
您的基础结构似乎需要持续集成和连续部署(CICD),因此您的代码更改将直接/自动地部署到AWS。您必须为此设置管道,以下是最简单但不是唯一的方法:
master分支,以便它中的任何更改都会触发管道,并且它将自动部署这些更改。AWS::CodePipeline::Pipeline为资源的新堆栈。下面是一个参考管道堆栈,它使用s3作为存储代码的源。
发布于 2019-05-19 11:28:12
你还没有给出足够的信息。如果您正在使用CICD,例如jenkins。
您可以在云形成模板中指定输出变量,这些变量可以由其他模板引用。
这样你就能得到类似的东西。
Outputs:
VpcId:
Value: !Ref VPC
Export:
Name: Unique-VpcId然后将其导入另一个堆栈中,如下所示
VpcId:
Fn::ImportValue: Unique-VpcIdhttps://stackoverflow.com/questions/56207078
复制相似问题