是否可以使用 AWS CDK CLI 以某种方式获取另一个堆栈所依赖的堆栈列表?例如,给定一个类似于以下内容的堆栈列表:
const app = new App();
const alphaStack = new Stack(app);
const betaStack = new Stack(app);
betaStack.addDependency(alphaStack);
const gammaStack = new Stack(app);
gammaStack.addDependency(gammaStack);
const deltaStack = new Stack(app);
deltaStack.addDependency(betaStack);
deltaStack.addDependency(gammaStack);
我想运行一个命令,它可以给我类似于以下的输出:
$ cdk list-deps alpha-stack # no result
$ cdk list-deps beta-stack
alpha-stack
$ cdk list-deps gamma-stack
alpha-stack
$ cdk list-deps delta-stack
beta-stack
gamma-stack
具体来说,我希望能够在部署堆栈之前运行。
答案 0 :(得分:0)
我知道这不像您正在寻找的那么健壮,但这里有一个有用的命令来查找依赖于特定导出的堆栈:
aws cloudformation list-imports --export-name EXPORT_NAME
答案 1 :(得分:0)
如果这对未来的任何人有帮助;以下似乎解决了我想解决的问题:
// the stack that we're interested in finding deps for
const stackName = "...";
// assuming app is as defined in the question
const { stacks } = app.synth();
stacks
.find(({ stackName }) => stackName === searchForStackName)
?.dependencies.forEach((dep) => console.log(dep.id));
注意事项:
app
。synth
。最初我的理解是,这会在 AWS 中创建一些我想避免的工件;但实际情况似乎并非如此。dep.id
的可靠性/稳定性如何。尽管到目前为止它对于我的目的来说已经足够强大,但 dependencies
返回一个 CloudArtifact
列表,我不确定它是否总是代表一个 Stack
。