AWS CDK (Java):将组添加到用户池
AWS CDK (Java): Add a Group to a UserPool
AWS CDK (Java) 尝试将组添加到 UserPool 失败并显示:“错误:堆栈 [CdkStackTest] 中已经有一个名为 'CdkStackTest' 的构造”。我相信 'scope' 参数正在将 CfnUserPoolGroup 创建为另一个具有相同名称的结构。我如何(正确地)创建一个组并将其与 UserPool 相关联?
public class CdkStackMain extends Stack {
public CdkStackMain(final Construct scope, final String id, final StackProps props, StackMode stackMode) {
super(scope, id, props);
// userPool successfully created here
CfnUserPoolGroup.Builder
.create(scope, id)
.groupName("admin")
.userPoolId(userPool.getUserPoolId())
.build();
}
}
我发现,如果我将'scope'替换为'this'并将'id'更改为唯一标识符,则CfnUserPoolGroup可以成功与UserPool相关联。我还了解到,最好的做法是指定组依赖于 UserPool 的存在。
CfnUserPoolGroup.Builder
.create(this, "adminGroup")
.groupName("admin")
.userPoolId(userPool.getUserPoolId())
.build()
.addDependsOn((CfnResource)userPool.getNode().getDefaultChild());
AWS CDK (Java) 尝试将组添加到 UserPool 失败并显示:“错误:堆栈 [CdkStackTest] 中已经有一个名为 'CdkStackTest' 的构造”。我相信 'scope' 参数正在将 CfnUserPoolGroup 创建为另一个具有相同名称的结构。我如何(正确地)创建一个组并将其与 UserPool 相关联?
public class CdkStackMain extends Stack {
public CdkStackMain(final Construct scope, final String id, final StackProps props, StackMode stackMode) {
super(scope, id, props);
// userPool successfully created here
CfnUserPoolGroup.Builder
.create(scope, id)
.groupName("admin")
.userPoolId(userPool.getUserPoolId())
.build();
}
}
我发现,如果我将'scope'替换为'this'并将'id'更改为唯一标识符,则CfnUserPoolGroup可以成功与UserPool相关联。我还了解到,最好的做法是指定组依赖于 UserPool 的存在。
CfnUserPoolGroup.Builder
.create(this, "adminGroup")
.groupName("admin")
.userPoolId(userPool.getUserPoolId())
.build()
.addDependsOn((CfnResource)userPool.getNode().getDefaultChild());