如何获取 CloudFormation 堆栈下的资源总数?

How to get total number of resources under a CloudFormation stack?

我正在尝试使用 CDK TypeScript 部署一个相当大的堆栈。当我 运行 cdk deploy myApp 时,出现 Template format error: Number of resources, 257, is greater than maximum allowed, 200 错误。

经过一些研究,我想我知道问题出在哪里了。来自 docs:

这里的关键字是"nested stacks",这就是我现在打算做的。根据我的阅读,我很清楚在创建父堆栈和嵌套堆栈方面我应该做什么。

这里的问题是,CDK库中有没有可用的TS函数,我可以调用它来告诉我一个堆栈将产生多少资源?

或者,简单来说,我希望 TS 函数告诉我 "with all these declarations defined in this stack, you will create xxx number of resources under this stack"。

更好的是,一个TS函数,可以列出所有将在堆栈下生成的资源。

我正在寻找这样的东西:

new cdk.CfnOutput(this, "TotalResources", {
    value: ___, // <-- any idea what's available for this one?
});

有了这个辅助函数,它将帮助我进行重构和嵌套堆栈规划工作。

将此包含在 CDK 中很棘手,因为您必须在完成堆栈后解决此计数问题。

为什么不直接 运行 cdk synth | jq '.Resources | length' 获取资源数量?