確認後の Lambda トリガー - Amazon Cognito

確認後の Lambda トリガー

Amazon Cognito は、新しいユーザーの確認後にこのトリガーを呼び出し、カスタムメッセージの送信やカスタムロジックの追加の実行を可能にします。例えば、このトリガーを使用して新しいユーザーデータを収集できます。

リクエストには、確認されたユーザーの現在の属性が含まれています。

確認後の Lambda フロー

クライアントの確認サインアップフロー


                    クライアントの確認サインアップフロー

サーバーの確認サインアップフロー


                    サーバーの確認サインアップ

パスワードを忘れた場合の確認フロー


                    パスワードを忘れた場合の確認フロー

確認後の Lambda トリガーのパラメータ

これらは、Amazon Cognito が共通パラメータのイベント情報と共にこの Lambda 関数に渡すパラメータです。

JSON
{ "request": { "userAttributes": { "string": "string", . . . }, "clientMetadata": { "string": "string", . . . } }, "response": {} }

確認後のリクエストパラメータ

userAttributes

ユーザー属性を表す 1 つ以上のキーバリューペア。

clientMetadata

確認後のトリガーに指定する Lambda 関数へのカスタム入力として提供できる 1 つ、または複数のキー/値ペア。このデータは、AdminConfirmSignUpConfirmForgotPasswordConfirmSignUp、および SignUp の API アクションで ClientMetadata パラメータを使用することによって Lambda 関数に渡すことができます。

確認後のレスポンスパラメータ

レスポンスで返される追加の情報は想定されていません。

ユーザー確認チュートリアル

確認後の Lambda 関数は、Amazon Cognito が新しいユーザーを確認した直後にトリガーされます。JavaScript、Android、iOS に関する以下のユーザー確認チュートリアルを参照してください。

プラットフォーム チュートリアル
JavaScript ID SDK JavaScript でのユーザーの確認
Android ID SDK Android でのユーザーの確認
iOS ID SDK iOS でのユーザーの確認

確認後の例

この Lambda 関数の例では、Amazon SES を使用してユーザーに確認 E メールメッセージを送信します。詳細については、Amazon Simple Email Service デベロッパーガイドを参照してください。

Node.js
// Import required AWS SDK clients and commands for Node.js. Note that this requires // the `@aws-sdk/client-ses` module to be either bundled with this code or included // as a Lambda layer. import { SES, SendEmailCommand } from "@aws-sdk/client-ses"; const ses = new SES(); const handler = async (event) => { if (event.request.userAttributes.email) { await sendTheEmail( event.request.userAttributes.email, `Congratulations ${event.userName}, you have been confirmed.` ); } return event; }; const sendTheEmail = async (to, body) => { const eParams = { Destination: { ToAddresses: [to], }, Message: { Body: { Text: { Data: body, }, }, Subject: { Data: "Cognito Identity Provider registration completed", }, }, // Replace source_email with your SES validated email address Source: "<source_email>", }; try { await ses.send(new SendEmailCommand(eParams)); } catch (err) { console.log(err); } }; export { handler };

Amazon Cognito は Lambda 関数にイベント情報を渡します。関数はレスポンスで、同じイベントオブジェクトを変更と共に Amazon Cognito に返します。Lambda コンソールで、Lambda トリガーに関連するデータを使用したテストイベントをセットアップできます。以下は、このコードサンプルのテストイベントです。

JSON
{ "request": { "userAttributes": { "email": "user@example.com", "email_verified": true } }, "response": {} }