kakakakakku blog

Weekly Tech Blog: Keep on Learning!

AWS CDK で Cognito User Pools の「メッセージテンプレート」を設定する

Amazon Cognito User Pools から自動的に送信される「招待メッセージ」はデフォルトでは以下のようにシンプルな設定になっていて,実運用では使いにくさがある😇 あと末尾の . までコピーしてログインしようとして「エラーになります」って言われることもよくあったりする🔥

emailSubject:
Your temporary password
emailBody:
Your username is {username} and temporary password is {####}.

そこで「メッセージテンプレート」を使うとある程度ならメールテンプレートをカスタマイズできる✉️

docs.aws.amazon.com

今回は AWS CDK でメッセージテンプレートを実装してみた❗️aws_cognito.UserPooluserInvitation を設定すれば OK👌

docs.aws.amazon.com

ちなみにメール本文はマークアップに対応してて,改行する場合は <br /> を使う.

import {
    Stack,
    StackProps,
    aws_cognito,
} from 'aws-cdk-lib'
import { Construct } from 'constructs'

export class CognitoMessageTemplateStack extends Stack {
    constructor(scope: Construct, id: string, props?: StackProps) {
        super(scope, id, props)

        new aws_cognito.UserPool(this, 'UserPool', {
            userPoolName: 'sandbox',
            signInAliases: {
                email: true,
            },
            userInvitation: {
                emailSubject: 'kakakakakku sandbox: Your temporary password',
                emailBody: `Thank you for signing up to kakakakakku sandbox \( 'ω')/<br />
Your username is {username} and temporary password is {####}`,
            }
        })
    }
}

デプロイして再度確認するとカスタマイズしたメッセージテンプレートになっていた👏