从aws-cdk之外的aws-cdk堆栈访问UserPoolId

时间:2020-04-28 09:56:25

标签: amazon-web-services aws-cdk

我通过aws-cdk作为CognitoStack部署了一个AWS Cognito UserPool。

现在,我想自动化使用所述AWS Cognito UserPool进行身份验证的GraphQL API的测试。

如何以编程方式从UserPoolId获取身份验证所需的CogntioStack

我的CognitoStack是:

export class CognitoStack extends Stack {
  public readonly userPool: UserPool;

  constructor(scope: App, id: string, props?: StackProps) {
    super(scope, id, props);

    this.userPool = new UserPool(this, 'UserPool', {
      signInAliases: {
        email: true,
        phone: false,
        username: false,
        preferredUsername: false,
      },
      autoVerify: {
        phone: false,
        email: false,
      },
      selfSignUpEnabled: true,
    });

    this.userPool.addClient('web', {
      authFlows: {
        refreshToken: true,
        userSrp: true,
      },
    });

    new CfnOutput(this, 'UserPoolId', {
      value: this.userPool.userPoolId,
    })
  }
}

当我做cdk deploy CognitoStack时,我得到:

Outputs:
CognitoStack.UserPoolId = eu-central-1_xafasds
CognitoStack.ExportsOutputRefUserPool6BA7E5F296FD7236 = eu-central-1_xasdfdd

但是,当我检查cdk.out/CognitoStack.template.json(在测试中可以很容易地require进行检查)时,没有出现eu-central-1_xasdfdd

1 个答案:

答案 0 :(得分:1)

到目前为止,我发现最好的方法是在运行deploy命令时使用--outputs-file标志,然后得到一个包含我需要的所有字段的json文件。

cdk deploy CognitoStack --outputs-file outputs.json