我用CDK写了一个栈,然后生成模板并通过它进行部署
aws cloudformation deploy --template-file "$env:TEMP\template.json" --stack-name myStackName
在我的Stack对象中,如何检索上面传递给命令的“ myStackName”?我尝试使用.Name
和.StackName
属性,但都没有给我这个名字。
谢谢
答案 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
返回.