首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >自动化Cloudformation模板部署

自动化Cloudformation模板部署
EN

Stack Overflow用户
提问于 2019-05-19 10:54:57
回答 2查看 488关注 0票数 2

我目前正在使用Cloudformation模板来提供AWS中的资源。

目前,如果我需要创建一个VPC和Security,首先我将从一个模板创建VPC,然后再次为安全组启动另一个模板,在其中手动输入VPC ID。

现在,我需要在Cloudformation中自动化这个手动过程。我该怎么做?我可以使用AWS开发工具或其他自动化工具吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-05-19 15:16:57

简短回答

您需要遵循输出您创建的任何AWS资源的an /名称的实践,因此如果稍后需要它们,可以通过在新模板中进行导入来轻松地通过一个简单的引用来实现这一点。

正如Nimo在上面的回答中所解释的那样,为此,您将需要对任何您希望重用的资源使用Outputs部分中的所有模板使用Outputs函数。然后,您可以轻松地使用Fn::ImportValue来使用先前创建的资源,而无需知道资源的实际物理ID。这被称为跨堆栈引用。

对自动化部分的解释

您的基础结构似乎需要持续集成和连续部署(CICD),因此您的代码更改将直接/自动地部署到AWS。您必须为此设置管道,以下是最简单但不是唯一的方法:

  1. 使用Github/AWS代码分解等来存储您的CloudFormation代码,并将其触发器设置为分支,例如您的master分支,以便它中的任何更改都会触发管道,并且它将自动部署这些更改。
  2. 为此目的,请使用AWS的本地服务AWS CodePipeline。在这里,您可以定义一个包含不同阶段的完整管道,而每个阶段可能有许多操作,每个阶段都创建一个堆栈。所有堆栈都可以使用以前创建的堆栈的输出,一些东西也可以传递到参数中。为此,您必须创建一个以AWS::CodePipeline::Pipeline为资源的新堆栈。
  3. 对于那些您认为需要的资源,也可以使用输出,而不需要导出函数。例如,您可能需要负载均衡器的DNS端点(如果有)。

下面是一个参考管道堆栈,它使用s3作为存储代码的源。

票数 3
EN

Stack Overflow用户

发布于 2019-05-19 11:28:12

你还没有给出足够的信息。如果您正在使用CICD,例如jenkins。

您可以在云形成模板中指定输出变量,这些变量可以由其他模板引用。

这样你就能得到类似的东西。

代码语言:javascript
复制
Outputs:
  VpcId:
    Value: !Ref VPC
    Export:
      Name: Unique-VpcId

然后将其导入另一个堆栈中,如下所示

代码语言:javascript
复制
VpcId:
    Fn::ImportValue: Unique-VpcId
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56207078

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档