如何在 cdk 中的 aws 嵌套堆栈之间进行跨堆栈引用

时间:2021-05-26 11:29:50

标签: typescript amazon-web-services aws-cdk

我的 cdk 应用中有两个嵌套的堆栈。

export default class mainAppStack extends Stack {
 
  constructor(scope: Construct, id: string, props?: StackProps) {
    super(scope, id, props);

    new NestedStackOne(this, "nested-one");
    new nestedStackTwo(this, 'nested-two);
  }
}


export class nestedStackOne extends cdk.NestedStack {
  constructor( scope: cdk.Construct, id: string, props?: cdk.NestedStackProps ) {
    super(scope, id, props);

    new new cognito.UserPool(this, `Userpool`, {
     // ...configs
    });
  });

 }


export class nestedStackTwo extends cdk.NestedStack {
  constructor( scope: cdk.Construct, id: string, props?: cdk.NestedStackProps 
  ) {
    super(scope, id, props);
    
  });

 }

我想将嵌套堆栈一中定义的用户池的 arn 传递给堆栈二。我一直在努力寻找一种方法来做到这一点。 AWS 文档没有帮助。我该怎么做呢?如何在嵌套堆栈之间进行引用。

1 个答案:

答案 0 :(得分:0)

您可以使用 CfnOutput 跨堆栈导出值,并使用 core.Fn.import_value("export_name") 在另一个堆栈中使用它。这应该允许您在账户内导入 ARN,因此嵌套结构应该无关紧要。

文档:https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_core.CfnOutput.html