2024-10-23
AWS の SNS と Lambda を使って問い合わせフォームを追加した。
以下のドキュメントにしたがいトピックを作成する。
細かい設定はせず、タイプ、名前、表示名だけ設定して作成した。
次にサブスクリプションを作成する。
サブスクライブ先のトピックとして先ほどのトピックを選択し、プロトコルは E メールとした。これでトピックにパブリッシュすることで指定したサブスクリプションのメールアドレスにメールが届くようになる。
AWS SDK for JavaScript v3 ライブラリ
@aws-sdk/client-sns
を使用する。
import { PublishCommand, SNSClient } from "@aws-sdk/client-sns"; export const handler = async (event) => { console.log('--- EVENT ---', event) const {subject, email, content} = event; const snsClient = new SNSClient({}); try { // パブリッシュ const response = await snsClient.send( new PublishCommand({ Subject: '【ここえほん】ユーザーお問い合わせ', Message: `ユーザーからお問い合わせが届きました。\n\n ■お問い合わせ件名:\n${subject}\n ■送信元メールアドレス:\n${email}\n ■内容:\n${content}`, TopicArn: process.env['SNS_TOPIC_ARN'], }), ); // 以下省略