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());