AWS Step FunctionsステートマシンからAmazon SESを使用してメールを送信してみた

2022.02.01

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

こんにちは、CX事業本部 IoT事業部の若槻です。

今回は、AWS Step FunctionsステートマシンからAmazon SESを使用してメールを送信してみました。

やってみた

構成

下記のような構成を作成してみます。

前提

Amazon SESのVerified identitiesでメール送信元(From)としたいメールアドレスまたはドメインが承認済みである前提とします。

まだの場合は下記などを参考に承認を行ってください。

ステートマシンの作成

Step Functions Workflow Studioでステートマシンを作成します。

Step Functionsのマネジメントコンソールを開き、[ステートマシンの作成]をクリックします。

[次へ]をクリックします。

するとビルダー画面が開きます。アクション一覧をses send mailで検索します。するとAmazon SESのメール送信APIを実行できるアクションが見つかります。今回はこのうちAmazon SES V1 Sendmailを使ってみます。編集領域にドラッグアンドドロップします。

ちなみにSES APIにはV1とV2があるのですが、出来ることは基本的には変わらないようです。

作成に戻ります。下記がAmazon SES V1 Sendmailアクションをドロップした状態です。このアクションはAPIパラメータを直接編集するタイプのようです。

APIパラメータを次のように指定します。基本的にはAPIドキュメントの通りに指定すればOKです。[次へ]をクリック。

{
  "Destination": {
    "ToAddresses": [
      "<宛先メールアドレス>"
    ]
  },
  "Message": {
    "Body": {
      "Text": {
        "Data": "てすと本文"
      }
    },
    "Subject": {
      "Data": "てすと件名"
    }
  },
  "Source": "<送信元メールアドレス>"
}

ステートマシン定義を確認したら[次へ]をクリック。

設定は既定のままとして、[ステートマシンの作成]をクリック。

ステートマシンを作成できました。不足している権限を追加する必要があります。[IAM でロールを編集]をクリック。

作成済みのIAMロールがコンソールで開きます。AWS管理ポリシーのAmazonSESFullAccessをアタッチします。(実際の利用では、権限権限が過多なので適宜絞ってください)

ステートマシンのコンソールに戻り、[実行の開始]をクリック。

今回は入力の指定は省略して良いです。[実行の開始]をクリック。

するとステートマシンの実行が開始され、体感2,3秒で完了しました。ステータスは成功となっていますね!

すると宛先のメールボックにメールがちゃんと届きました!

おわりに

AWS Step FunctionsステートマシンからAmazon SESを使用してメールを送信してみました。

簡単なメール送信処理であればLamabda関数を作らなくてもこれで事足りそうです。

またSendEmailアクションには「コールバックを待つ」オプションなるものがあるようなので、これは次回以降試してみたいと思います。

参考

以上