Cognito User Poolsのトリガーでカスタムメッセージ使うときにAdminCreateUserでハマった話

Cognito User Poolsはトリガーを使うことでメッセージをカスタマイズすることができます。 参考:AWS Lambda トリガーを使用したユーザープールのワークフローのカスタマイズ event.respons […]

広告ここから
広告ここまで

目次

    Cognito User Poolsはトリガーを使うことでメッセージをカスタマイズすることができます。

    参考:AWS Lambda トリガーを使用したユーザープールのワークフローのカスタマイズ

    event.response.emailMessageにHTMLを入れればHTMLメールが送れるので非常に便利です。

    が、なぜかAdminCreateUserしたときだけHTMLメールではなくデフォルトのメールが送られるという現象にこの間遭遇しました。

    対応:ドキュメントに記載されてる値をちゃんと含めましょう

    他のトリガーではHTMLメールが送信されるのに、CustomMessage_AdminCreateUserではなぜか送信されないというこの現象。

    よくよく調べてみると、event.response.emailMessageevent.request.usernameParameterevent.request.codeParameterが含まれていないとダメな様子です。

    OKなケース

    event.response.smsMessage = `Welcome to the service. Your user name is ${event.request.usernameParameter} Your temporary password is ${event.request.codeParameter}`
    callback(null, event)

    NGなケース

    event.response.smsMessage = `Welcome to the service. Your user name is ${event.userName} Your temporary password is {####}`
    callback(null, event)

    {###}event.userNameでも他のトリガーは動作しますが、CustomMessage_AdminCreateUserだけはNGの様子です。

    あとでドキュメントを見返すと、「リクエストには request.usernameParameter と request.codeParameter の両方が含まれている必要があります。」とありましたので、つまりはそういうことですね。

    広告ここから
    広告ここまで
    Home
    Search
    Bookmark