我是 CDK 的新手,对构造和堆栈之间的区别感到困惑。使用 CDK,我们可以定义可重用的云组件(称为 Construct),并且可以进一步将它们组合成堆栈或应用程序。请参阅下面来自 AWS 网站的图表,
但是,我见过通过扩展 Construct 基类创建构造的类,以及通过扩展 Stack 基类创建 Stack 的类。稍后可以使用这两个子类来创建主堆栈。例如,请参阅下面的代码,我可以创建一个名为 HitCounter 类的 Construct 或 Stack,该类创建相同的资源集并在主 Stack 中以相同的方式使用它们。那么使用 Stack 或 Construct 有什么区别呢?
import * as cdk from '@aws-cdk/core';
export class HitCounterConstruct extends cdk.Construct {} // imagine this construct creates a bunch of related resources
export class HitCounterStack extends cdk.Stack {} // imagine this stack creates the same resources as the construct class above
// In main stack file App.ts
new HitCounterConstruct(cdk.App, "construct");
new HitCounterStack(cdk.App, "stack");
Run Code Online (Sandbox Code Playgroud)
如果我在代码中犯了任何错误,请纠正我。提前致谢 :)