Jam*_*l H 12 javascript amazon-web-services aws-cloudformation typescript aws-cdk
app.synth()
AWS CDK 应用程序中该行的用途是什么?例如,可以在第 29 行看到:
https: //github.com/aws-samples/aws-cdk-examples/blob/master/typescript/ecs/fargate-application-load-balanced-service/index.ts
我查看了 CDK 文档,但找不到该函数的实际用途。据我了解,该应用程序是在cdk deploy
或上自动合成的cdk synth
。我还采用了上面链接的存储库中显示的示例,注释掉该app.synth()
行,部署它,它似乎按预期工作。因此我想知道当谈到 app.synth() 的目的时我是否遗漏了一些东西
rin*_*eld 13
我知道这个问题已经有一段时间了,但我很好奇并亲自研究过,所以我会与你分享。
(我还认为当前接受的答案是关于 CDK 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 中的 Node 兼容层当前不支持“beforeExit”事件。
https://github.com/denoland/deno_std/blob/113435ada1948b90188586f022d55745c6d2d19b/node/process.ts#L51-L52
根据此经验,最好按照app.synth()
建议显式调用。
cdk Synth 仅构建您的 CloudFormation 模板。它不会将其部署(创建实际资源)到 AWS。您可以使用构建的模板,在CFN控制台中手动部署它,编辑或检查。
cdk deploy将构建模板并将其部署到 AWS。
人们使用synth
with 是deploy
因为这是一个很好的做法:
在部署之前进行综合是可选的(尽管是很好的做法)。AWS CDK 在每次部署之前综合您的堆栈。
归档时间: |
|
查看次数: |
7088 次 |
最近记录: |