从 aws-cdk 外部的 aws-cdk 堆栈访问 UserPoolId
Access UserPoolId from aws-cdk Stack outside of aws-cdk
我通过 aws-cdk
作为 CognitoStack
部署了一个 AWS Cognito 用户池。
现在,我想自动测试使用上述 AWS Cognito UserPool 进行身份验证的 GraphQL API。
如何以编程方式从 CogntioStack
获取身份验证所需的 UserPoolId
?
我的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
。
到目前为止我发现的最佳方法是在 运行 部署命令时使用 --outputs-file 标志,然后我有一个包含我需要的所有字段的 json 文件。
cdk deploy CognitoStack --outputs-file outputs.json
我通过 aws-cdk
作为 CognitoStack
部署了一个 AWS Cognito 用户池。
现在,我想自动测试使用上述 AWS Cognito UserPool 进行身份验证的 GraphQL API。
如何以编程方式从 CogntioStack
获取身份验证所需的 UserPoolId
?
我的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
。
到目前为止我发现的最佳方法是在 运行 部署命令时使用 --outputs-file 标志,然后我有一个包含我需要的所有字段的 json 文件。
cdk deploy CognitoStack --outputs-file outputs.json