翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
Amazon SES アカウントの E メール送信を自動的に一時停止する
このセクションの手順では、Amazon SES 、Amazon SNS 、Amazon 、および を設定 AWS Lambda して CloudWatch、Amazon SES アカウントの E メール送信を 1 つの AWS リージョンで自動的に一時停止する手順について説明します。複数のリージョンから E メールを送信する場合は、このソリューションを実装するリージョンごとにこのセクションの手順を繰り返します。
このセクションのトピック:
パート 1: IAM ロールの作成
E メール送信の自動一時停止を設定するための最初のステップは、UpdateAccountSendingEnabled
API オペレーションを実行できる IAM ロール を作成することです。
IAM ロールを作成するには
IAM コンソール (https://console.aws.amazon.com/iam/
) を開きます。 -
ナビゲーションペインで Roles (ロール) を選択します。
-
[ロールの作成] を選択します。
-
[信頼されたエンティティを選択] ページで、[信頼されたエンティティタイプ] の [AWS のサービス] を選択します。
-
[Use case] (ユースケース) で、Lambda を選択し、[Next] (次へ) を選択します。
-
[Add permissions] (アクセス許可を追加) ページで、次のポリシーを選択します。
-
AWSLambdaBasicExecutionRole
-
AmazonSESFullAccess
ヒント
[Permission policies] (アクセス許可ポリシー) の下にある検索ボックスを使用して、これらのポリシーをすばやく特定します。ただし、最初のポリシーを検索して選択した後、2 番目のポリシーを検索して選択する前に、[Clear filters] (フィルターをクリア) を選択する必要があります。
次いで、[次へ] を選択します。
-
-
[Name, review, and create] (名前、確認、および作成) ページの [Role details] (ロールの詳細) の下にある [Role name] (ロール名) フィールドに、意味のあるポリシーの名前を入力します。
-
選択した 2 つのポリシーが、[Permissions policy summary] (アクセス許可ポリシーの概要) テーブルに表示されていることを確認して、[Create role] (ロールの作成) を選択します。
パート 2: Lambda 関数を作成する
IAM ロールを作成した後で、Lambda 関数を作成して、アカウントの E メール送信を一時停止することができます。
Lambda 関数を作成するには
https://console.aws.amazon.com/lambda/
で AWS Lambda コンソールを開きます。 -
リージョンセレクターを使用して、この Lambda 関数をデプロイするリージョンを選択します。
注記
この関数は、このステップで選択した AWS リージョンの E メール送信のみを一時停止します。複数のリージョンから E メールを送信する場合は、E メール送信を自動的に一時停止するリージョンごとにこのセクションの手順を繰り返します。
-
[Create function] を選択します。
-
[Create function] で [Author from scratch] を選択します。
-
[Basic information] (基本的な情報) ページで、以下のステップを完了します。
-
[Function name] (関数名) に Lambda 関数の名前を入力します。
-
[ランタイム] で、[Node.js 18x] (または、現在選択リストで提供されているバージョン) を選択します。
-
[Architecture] (アーキテクチャ) で、事前に選択されたデフォルト、x86_64 を保持します。
-
アクセス許可で、[Change default execution role] (デフォルト実行ロールの変更) を拡張し、[Use an existing role] (既存のロールを使用) を選択します。
-
[Existing role] (既存のロール) リストボックスで、パート 1: IAM ロールの作成 で作成した IAM ロールを選択します。
次に、[Create function] を選択します。
-
-
コードエディタの [Code source] (コードソース) に、以下のコードを貼り付けます。
'use strict'; const { SES } = require("@aws-sdk/client-ses") // Create a new SES object. var ses = new SES({}); // Specify the parameters for this operation. In this case, there is only one // parameter to pass: the Enabled parameter, with a value of false // (Enabled = false disables email sending, Enabled = true enables it). var params = { Enabled: false }; exports.handler = (event, context, callback) => { // Pause sending for your entire SES account ses.updateAccountSendingEnabled(params, function(err, data) { if(err) { console.log(err.message); } else { console.log(data); } }); };
その後、[デプロイ] を選択します。
-
[テスト] を選択します。[Configure test event] (テストイベントの設定) ウィンドウが表示されたら、[Event name] (イベント名) フィールドに名前を入力し、[Save] (保存) を選択します。
-
[Test] (テスト) ドロップボックスを拡張し、作成したイベントの名前を選択してから、[Test] (テスト) を選択します。
-
そのすぐ下に、[Execution results] (実行結果) タブが表示されます。右に
Status: Succeeded
が表示されていることを確認します。関数の実行に失敗した場合は、次のことを実行します。-
パート 1: IAM ロールの作成 で作成した IAM ロールに正しいポリシーが含まれていることを確認します。
-
Lambda 関数のコードにエラーがないことを確認します。Lambda コードエディタでは、構文エラーやその他の潜在的な問題が自動的にハイライトされます。
-
パート 3: アカウントの E メール送信の再有効化
パート 2: Lambda 関数を作成する で Lambda 関数のテストをする副作用は、Amazon SES アカウントの E メール送信が一時停止していることです。ほとんどの場合、 CloudWatch アラームがトリガーされるまでアカウントの送信を一時停止したくないです。
このセクションの手順では、Amazon SES アカウントの E メール送信を再度有効にします。これらの手順を完了するには、 AWS Command Line Interfaceをインストールして設定する必要があります。詳細については、AWS Command Line Interface ユーザーガイドを参照してください。
E メール送信を再有効化するには
-
コマンドラインで次のコマンドを入力して、アカウントの E メールの送信を再度有効にします。
sending_region
を、E メール送信を再び有効にするリージョンの名前に置き換えます。aws ses update-account-sending-enabled --enabled --region
sending_region
-
コマンドラインで次のコマンドを入力して、アカウントの E メールの送信ステータスを確認します。
aws ses get-account-sending-enabled --region
sending_region
次の出力が表示された場合は、アカウントの E メール送信が正常に再有効化されています。
{ "Enabled": true }
パート 4: Amazon SNS トピックおよびサブスクリプションを作成する
アラームがトリガーされたときに が Lambda 関数を実行する CloudWatch には、まず Amazon SNS トピックを作成し、Lambda 関数をサブスクライブする必要があります。
Amazon SNS トピックを作成し、Lambda 関数をそのトピックにサブスクライブするには
Amazon SNS コンソール (https://console.aws.amazon.com/sns/v3/home
) を開きます。 -
「Amazon Simple Notification Service デベロッパーガイド」のステップに従ってトピックを作成します。
-
[Type] (タイプ) は、(FIFO ではなく) [Standard] (標準) にする必要があります。
-
-
Amazon Simple Notification Service デベロッパーガイドのステップに従ってトピックにサブスクライブします。
-
[プロトコル] で AWS Lambda を選択します。
-
[Endpoint] に、パート 2: Lambda 関数を作成する で作成した Lambda 関数を選択します。
-
パート 5: CloudWatch アラームの作成
このセクションでは、メトリクスが特定のしきい値に達したときにトリガー CloudWatch されるアラームを で作成する手順について説明します。アラームが発生すると、パート 4: Amazon SNS トピックおよびサブスクリプションを作成する で作成した Amazon SNS トピックに通知が送信され、パート 2: Lambda 関数を作成する で作成した Lambda 関数が実行されます。
CloudWatch アラームを作成するには
https://console.aws.amazon.com/cloudwatch/
で CloudWatch コンソールを開きます。 -
リージョンセレクターを使用して、E メール送信を自動的に一時停止するリージョンを選択します。
-
ナビゲーションペインで、[Alarms] を選択します。
-
[Create Alarm (アラーム作成)] を選択します。
-
[Create Alarm] ウィンドウの、[SES Metrics] の下で、[Account Metrics] を選択します。
-
[Metric Name] で、次のいずれかのオプションを選択します。
-
評価 BounceRate- アカウントの全体的なハードバウンス率が定義したしきい値を超えたときにアカウントの E メール送信を一時停止する場合は、このメトリクスを選択します。
-
評価 –ComplaintRate アカウントの全体的な苦情率が定義したしきい値を超えたときにアカウントの E メール送信を一時停止する場合は、このメトリクスを選択します。
[Next] を選択します。
-
-
以下の手順を実行します。
-
[Alarm Threshold] の [Name] に、アラームの名前を入力します。
-
「いつでも: 評価BounceRate」または「いつでも: 評価ComplaintRate」で、アラームをトリガーするしきい値を指定します。
注記
バウンス率が 5% を超える場合、または苦情率が 0.1% を超える場合、アカウントは自動的にレビュー対象になります。 CloudWatch アラームがトリガーされるバウンス率または苦情率を指定する場合は、アカウントがレビュー対象にならないように、これらの率を下回る値を使用することをお勧めします。
-
[アクション] の [アラームが次の時:] で、[状態: 警告] を選択します。[Send notification to] に パート 4: Amazon SNS トピックおよびサブスクリプションを作成する で作成した Amazon SNS トピックを選択します。
[Create Alarm] を選択します。
-
パート 6: ソリューションをテストする
ALARM
状態に入ったときに Lambda 関数を実行するようにアラームをテストできるようになりました。SetAlarmState
API オペレーションを使用して、アラームの状態を一時的に変更することができます。
このセクションの手順はオプションですが、ソリューション全体が正しく設定されていることを確認するために、これらの手順を完了することをお勧めします。
-
コマンドラインで次のコマンドを入力して、アカウントの E メールの送信ステータスを確認します。
region
は、使用しているリージョンの名前に置き換えます。aws ses get-account-sending-enabled --region
region
送信がアカウントに対して有効になっている場合、次の出力が表示されます。
{ "Enabled": true }
-
コマンドラインで次のコマンドを入力して、アラーム状態を一時的に
ALARM
に変更します。aws cloudwatch set-alarm-state --alarm-nameMyAlarm
--state-value ALARM --state-reason "Testing execution of Lambda function" --regionregion
上記のコマンド
MyAlarm
の を で作成したアラームの名前に置き換えパート 5: CloudWatch アラームの作成、region
を E メール送信を自動的に一時停止するリージョンに置き換えます。注記
このコマンドを実行すると、アラームの状態は
OK
からALARM
に切り替わり、数秒でOK
に戻ります。これらのステータスの変更は、 CloudWatch コンソールのアラームの履歴タブで表示することも、 DescribeAlarmHistoryオペレーションを使用して表示することもできます。 -
コマンドラインで次のコマンドを入力して、アカウントの E メールの送信ステータスを確認します。
aws ses get-account-sending-enabled --region
region
Lambda 関数が正常に実行された場合、次の出力が表示されます。
{ "Enabled": false }
-
パート 3: アカウントの E メール送信の再有効化 の手順を実行して、アカウントの E メール送信を再度有効にします。