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();
}
}
答案 0 :(得分:0)
我发现,如果将“ scope”替换为“ this”并将“ id”更改为唯一标识符,则CfnUserPoolGroup可以成功与UserPool关联。我还了解到,最佳做法是指定组取决于UserPool的存在。
CfnUserPoolGroup.Builder
.create(this, "adminGroup")
.groupName("admin")
.userPoolId(userPool.getUserPoolId())
.build()
.addDependsOn((CfnResource)userPool.getNode().getDefaultChild());