CDK-如何在构造中获取堆栈名称

时间:2019-06-27 11:44:58

标签: cdk

我用CDK写了一个栈,然后生成模板并通过它进行部署

aws cloudformation deploy --template-file "$env:TEMP\template.json" --stack-name myStackName

在我的Stack对象中,如何检索上面传递给命令的“ myStackName”?我尝试使用.Name.StackName属性,但都没有给我这个名字。

谢谢

2 个答案:

答案 0 :(得分:3)

这是通过pseudo parameters完成的。

import * as cdk from "@aws-cdk/core";

// in your construct...
const stack = cdk.Stack.of(this);
stack.stackName

答案 1 :(得分:0)

推荐的方法是由 alukack 描述的。但你也可以这样做

Aws.STACK_NAME

但如 above link...

中所述 <块引用>

CloudFormation 支持多个伪参数,它们解析 到部署时的有用值。 CloudFormation 伪参数 可以从 Aws 类的静态成员中获取。

一般建议从 取而代之的是范围的堆栈,它保证产生的值是 限定指定的堆栈,这在以下情况下必不可少 资源是跨堆栈共享的:

顺便说一句:我经历过 stack.stackName 返回了我在 CDK 中使用的堆栈的 id。在 CFN 中使用的正确 Stackname 仅从 Aws.STACK_NAME 返回.