【问题标题】:What is the purpose of app.synth() in AWS CDK?AWS CDK 中 app.synth() 的用途是什么?
【发布时间】:2021-09-26 18:21:41
【问题描述】:

AWS CDK 应用程序中app.synth() 行的用途是什么?例如,可以在第 29 行看到: https://github.com/aws-samples/aws-cdk-examples/blob/master/typescript/ecs/fargate-application-load-balanced-service/index.ts

我查看了 CDK 文档,但找不到该函数的实际用途。据我了解,该应用程序是在cdk deploycdk synth 上自动合成的。我还采用了上面链接的 repo 中显示的示例,注释掉 app.synth() 行,部署它,它似乎按预期工作。因此,我想知道在 app.synth() 的目的方面我是否遗漏了什么

【问题讨论】:

  • 进展如何?仍然不清楚区别?
  • 如果 cdk deploy 无论如何都会合成它,为什么每个示例应用程序最后都包含 app.synth() ,我仍然感到困惑。那为什么还要在代码中包含它呢?

标签: javascript typescript amazon-web-services amazon-cloudformation aws-cdk


【解决方案1】:

cdk synth 仅构建您的 CloudFormation 模板。它不会将其部署(创建实际资源)到 AWS。您可以将构建的模板,在 CFN 控制台中手动部署,编辑或检查。

cdk deploy 将构建模板并将其部署到 AWS

人们将synthdeploy 一起使用,因为这是一种良好做法

在部署之前进行综合是可选的(尽管良好做法)。 AWS CDK 在每次部署之前综合您的堆栈。

【讨论】:

  • 所以如果我只打算使用 CDK 部署,app.synth() 行就没有必要了吧?
  • @JamalH 是的。您可以在没有合成器的情况下进行部署。
  • @JamalH 我编辑了答案。这样做只是一个好习惯。可能您可以在实际尝试部署堆栈之前检测到一些错误。
猜你喜欢
  • 2018-12-14
  • 2020-07-01
  • 1970-01-01
  • 2012-06-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-08-05
相关资源
最近更新 更多