将 AWS CDK EmailConfigurationProperty 与 UserPool 相关联
Associate AWS CDK EmailConfigurationProperty with UserPool
如何将电子邮件配置属性与用户池相关联?我配置了两个对象,但没有看到连接它们的路径。
https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-cognito.UserPool.html
public class CdkStackMain extends Stack {
public CdkStackMain(final Construct scope, final String id, final StackProps props, StackMode stackMode) {
super(scope, id, props);
// other objects created here
UserPool userPool = UserPool.Builder.create(this, myAppName+"-UserPoolv008")
.userPoolName(myAppName)
.autoVerify(autoVerifiedAttrs)
.accountRecovery(AccountRecovery.EMAIL_AND_PHONE_WITHOUT_MFA)
.selfSignUpEnabled(true)
.passwordPolicy(passwordPolicy)
.signInCaseSensitive(false)
.standardAttributes(standardAtts)
.signInAliases(signinAliases)
.build();
EmailConfigurationProperty emailConfigurationProperty = EmailConfigurationProperty.builder()
.sourceArn("arn:aws:ses:us-east-1:000000000:identity/my-id")
.from("Some Name <somename@company.com>")
.replyToEmailAddress("Some Name <somename@company.com>")
.build();
}
}
自 AWS CDK v1.62.0 起,UserPool 高级对象没有用于 EmailConfigurationProperty 的 setter。解决方案是在 CfnUserPool 低级对象上使用 setter。
UserPool userPool = UserPool.Builder.create(this, myAppName+"-UserPoolv010")
.userPoolName(myAppName)
.autoVerify(autoVerifiedAttrs)
.accountRecovery(AccountRecovery.EMAIL_AND_PHONE_WITHOUT_MFA)
.selfSignUpEnabled(true)
.passwordPolicy(passwordPolicy)
.signInCaseSensitive(false)
.standardAttributes(standardAtts)
.signInAliases(signinAliases)
.lambdaTriggers(userPoolTriggers)
.build();
EmailConfigurationProperty emailConfigurationProperty = EmailConfigurationProperty.builder()
.emailSendingAccount(EmailSendingAccountType.DEVELOPER.toString())
.sourceArn("arn:aws:ses:us-east-1:0000000:identity/customer_support@company.com")
.from("customer_support@company.com")
.replyToEmailAddress("customer_support@company.com")
.build();
CfnUserPool cfnUserPool = (CfnUserPool)userPool.getNode().getDefaultChild();
cfnUserPool.setEmailConfiguration(emailConfigurationProperty);
如何将电子邮件配置属性与用户池相关联?我配置了两个对象,但没有看到连接它们的路径。
https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-cognito.UserPool.html
public class CdkStackMain extends Stack {
public CdkStackMain(final Construct scope, final String id, final StackProps props, StackMode stackMode) {
super(scope, id, props);
// other objects created here
UserPool userPool = UserPool.Builder.create(this, myAppName+"-UserPoolv008")
.userPoolName(myAppName)
.autoVerify(autoVerifiedAttrs)
.accountRecovery(AccountRecovery.EMAIL_AND_PHONE_WITHOUT_MFA)
.selfSignUpEnabled(true)
.passwordPolicy(passwordPolicy)
.signInCaseSensitive(false)
.standardAttributes(standardAtts)
.signInAliases(signinAliases)
.build();
EmailConfigurationProperty emailConfigurationProperty = EmailConfigurationProperty.builder()
.sourceArn("arn:aws:ses:us-east-1:000000000:identity/my-id")
.from("Some Name <somename@company.com>")
.replyToEmailAddress("Some Name <somename@company.com>")
.build();
}
}
自 AWS CDK v1.62.0 起,UserPool 高级对象没有用于 EmailConfigurationProperty 的 setter。解决方案是在 CfnUserPool 低级对象上使用 setter。
UserPool userPool = UserPool.Builder.create(this, myAppName+"-UserPoolv010")
.userPoolName(myAppName)
.autoVerify(autoVerifiedAttrs)
.accountRecovery(AccountRecovery.EMAIL_AND_PHONE_WITHOUT_MFA)
.selfSignUpEnabled(true)
.passwordPolicy(passwordPolicy)
.signInCaseSensitive(false)
.standardAttributes(standardAtts)
.signInAliases(signinAliases)
.lambdaTriggers(userPoolTriggers)
.build();
EmailConfigurationProperty emailConfigurationProperty = EmailConfigurationProperty.builder()
.emailSendingAccount(EmailSendingAccountType.DEVELOPER.toString())
.sourceArn("arn:aws:ses:us-east-1:0000000:identity/customer_support@company.com")
.from("customer_support@company.com")
.replyToEmailAddress("customer_support@company.com")
.build();
CfnUserPool cfnUserPool = (CfnUserPool)userPool.getNode().getDefaultChild();
cfnUserPool.setEmailConfiguration(emailConfigurationProperty);