Name:
interface
Value:
Amplify has re-imagined the way frontend developers build fullstack applications. Develop and deploy without the hassle.

Choose your framework/language

Gen1 DocsLegacy

Page updated Apr 10, 2025

カスタムメッセージ

defineAuthdefineFunction を使用して、カスタムメールまたは電話認証メッセージ、または多要素認証 (MFA) コードを送信する Amazon Cognito カスタムメッセージ AWS Lambda トリガー を作成できます。

まず、ハンドラーのタイプを定義するために使用される @types/aws-lambda パッケージをインストールします:

Terminal
npm add --save-dev @types/aws-lambda

次に、新しいディレクトリとリソースファイル amplify/auth/custom-message/resource.ts を作成します。次に、defineFunction を使用して関数を定義します:

amplify/auth/custom-message/resource.ts
import { defineFunction } from '@aws-amplify/backend';
export const customMessage = defineFunction({
name: "custom-message",
resourceGroupName: 'auth'
});

次に、対応するハンドラーファイル amplify/auth/custom-message/handler.ts を以下の内容で作成します:

CustomMessage_AdminCreateUser トリガーソースの入力イベントには、ユーザー名と確認コードの両方が含まれます。管理者が作成したユーザーがサインインするには、ユーザー名とコードの両方を受け取る必要があるため、メッセージテンプレートに usernameParametercodeParameter の両方を含める必要があります。

amplify/auth/custom-message/handler.ts
import type { CustomMessageTriggerHandler } from "aws-lambda";
export const handler: CustomMessageTriggerHandler = async (event) => {
if (event.triggerSource === "CustomMessage_ForgotPassword") {
const locale = event.request.userAttributes["locale"];
if (locale === "en") {
event.response.emailMessage = `Your new one-time code is ${event.request.codeParameter}`;
event.response.emailSubject = "Reset my password";
} else if (locale === "es") {
event.response.emailMessage = `Tu nuevo código de un solo uso es ${event.request.codeParameter}`;
event.response.emailSubject = "Restablecer mi contraseña";
}
}
if (event.triggerSource === "CustomMessage_AdminCreateUser") {
event.response.emailMessage = `Your username is ${event.request.usernameParameter} and your temporary password is ${event.request.codeParameter}`;
event.response.emailSubject = 'Welcome to Example App';
}
return event;
};

最後に、新しく作成した関数リソースを auth リソースに設定します:

amplify/auth/resource.ts
import { defineAuth } from '@aws-amplify/backend';
import { customMessage } from "./custom-message/resource";
export const auth = defineAuth({
// ...
triggers: {
customMessage,
}
});

変更をデプロイした後、ユーザー属性 localees に設定されているユーザーがパスワードをリセットしようとするたびに、スペイン語のワンタイムコード付きのメールが届きます。