首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >app.synth()在AWS中的用途是什么?

app.synth()在AWS中的用途是什么?
EN

Stack Overflow用户
提问于 2021-07-19 02:32:00
回答 2查看 2.5K关注 0票数 7

app.synth()行在AWS应用程序中的用途是什么?例如,可以在第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()的目的时,我是否遗漏了什么东西?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-07-19 03:49:06

cdk合成器 只构造CloudFormation模板。它没有将它部署(创建实际资源)到AWS。您可以使用构造的模板,在CFN控制台中手动部署它,编辑或检查它。

cdk部署将构建模板,也将其部署到AWS

人们在使用synth时使用deploy,因为它是良好实践

在部署之前,它是可选的(尽管是良好实践)。AWS CDK在每次部署之前都会综合您的堆栈。

票数 4
EN

Stack Overflow用户

发布于 2022-07-20 07:22:13

我知道有一段时间没有问这个问题了,但我很好奇,自己也研究过,所以我会和你们分享。

(我还认为当前被接受的答案是关于CLI的,而不是关于CDK应用程序代码的。)

App类有一个名为autoSynth的选项,默认设置为true,因此即使您在代码中省略了app.synth(),它也将自动执行。

https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.AppProps.html#autosynth

正如文档中提到的,这个特性在某些语言中可能不起作用,因此它似乎在许多示例代码中得到了显式的指定。

根据文档,多次运行app.synth()是可以的。

https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.App.html#synthoptions

autoSynth在Node.js上工作得很好。它是在Node.js中使用process.once("beforeExit", listener)实现的。

https://github.com/aws/aws-cdk/blob/v2.51.1/packages/@aws-cdk/core/lib/app.ts#L166-L170

我开始这项调查是因为当我在Deno中运行CDK时,我必须显式地运行app.synth()来生成CDK程序集。通过这次调查,我发现这是因为Deno中的节点兼容性层目前不支持"beforeExit“事件。

std/blob/113435ada1948b90188586f022d55745c6d2d19b/node/process.ts#L51-L52

根据这一经验,最好按照推荐的方式显式调用app.synth()

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68434528

复制
相关文章

相似问题

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