

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# Amazon EventBridge を使用した SES イベントのモニタリング
<a name="monitoring-eventbridge"></a>

EventBridge は、イベントを使用してアプリケーションコンポーネント同士を接続するサーバーレスサービスです。これにより、スケーラブルなイベント駆動型アプリケーションを簡単に構築できます。イベント駆動型アーキテクチャとは、イベントの発信と応答によって連携する、ゆるやかに結合されたソフトウェアシステムを構築するスタイルです。イベントは JSON 形式のメッセージで、通常はリソースや環境の変更、またはその他の管理イベントを表します。

特定の SES 機能は、EventBridge のデフォルトイベントバスに、イベント送信先の作成時に定義したイベントを生成して送信します。イベントバスは、イベントを受信して、ゼロ個以上の送信先 (*ターゲット*) に配信するルーターです。イベントバスに関連付けたルールによって、受信したイベントが評価されます。各ルールは、イベントがルールのパターンに一致するかどうかをチェックします。イベントが一致すると、EventBridge はイベントを指定されたターゲットに送信します。

SES は、機能のステータスが変化したり、更新した際、EventBridge にイベントを送信します。EventBridge ルールを使用すると、イベントを定義したターゲットにルートできます。これらのイベントはベストエフォート方式で配信されるため、順不同で配信される場合があります。

**Topics**
+ [SES イベント](#supported-events)
+ [SES イベントスキーマリファレンス](#eventbridge-events)
+ [SES イベントでの EventBridge の使用](#eventbridge-enable-event-notifications)
+ [追加の EventBridge リソース](#eventbridge-additonal-resources)

## SES イベント
<a name="supported-events"></a>

以下のイベントは SES の機能が生成し、EventBridge のデフォルトイベントバスに送信されます。各イベントタイプの詳細データなどの詳細については、「[SES イベントスキーマリファレンス](#eventbridge-events)」を参照してください。


**Virtual Deliverability Manager アドバイザーのイベント**  

| イベントタイプ | 説明 | 
| --- | --- | 
|  アドバイザー推奨事項ステータスのオープン  |  Virtual Deliverability Manager アドバイザーで新しい推奨事項が開かれるたびに生成されるイベント。  | 
|  アドバイザー推奨事項ステータスの解決  |  Virtual Deliverability Manager アドバイザーで推奨事項が解決されるたびに生成されるイベント。  | 


**SES E メール送信イベント**  

| イベントタイプ | 説明 | 
| --- | --- | 
|  E メールがバウンスしました  |  受信者のメールサーバーが E メールを完全に拒否した*ハードバウンス*です。(*ソフトバウンス*は、SES が一定期間にわたって再試行してもメールを配信できなかった場合に限り含まれます。)  | 
|  E メールがクリックされました  |  受取人はメール内の単一または複数のリンクをクリックしました。  | 
|  E メールの苦情を受信しました  |  E メールは受信者のメールサーバーに正常に配信されましたが、受信者がスパムとしてマークしました。  | 
|  E メール配信済み  |  SES は、受取人のメールサーバーに E メールを正常に配信しました。  | 
|  E メール配信が遅延しました  |  一時的な問題が発生したため、Ｅ メールを受信者のメールサーバーに配信できませんでした。配信の遅延は、受信者の受信トレイがいっぱいになった場合や、受信側の電子メールサーバーで一時的な問題が発生した場合などに発生します。  | 
|  E メールが開封されました  |  受信者はメッセージを受信し、E メールクライアントで開封しました。  | 
|  E メールが拒否されました  |  SES は E メールを受け取りましたが、この E メールにウイルスが含まれていると判断したため、受信者のメールサーバーへの E メールの配信を試みませんでした。  | 
|  E メールのレンダリングに失敗しました  |  テンプレートのレンダリングの問題により、この E メールは送信されませんでした。このイベントタイプは、テンプレートデータが見つからない場合や、テンプレートのパラメータとデータが一致しない場合に発生します。（このイベントタイプは、[https://docs.aws.amazon.com/ses/latest/APIReference/API_SendTemplatedEmail.html](https://docs.aws.amazon.com/ses/latest/APIReference/API_SendTemplatedEmail.html) または [https://docs.aws.amazon.com/ses/latest/APIReference/API_SendBulkTemplatedEmail.html](https://docs.aws.amazon.com/ses/latest/APIReference/API_SendBulkTemplatedEmail.html) API オペレーションを使用して E メールを送信する場合にのみ発生します。）  | 
|  E メールが送信されました  |  送信リクエストが正常に完了し、SES はこのメッセージを受信者のメールサーバーに配信しようと試行します。(アカウントレベルまたはグローバル抑制が使用されている場合でも、SES により送信済みとしてカウントされますが、配信は抑制されます)。  | 
|  E メールがサブスクライブしました  |  メールは正常に配信されましたが、受信者が E メールヘッダーの `List-Unsubscribe` またはフッターの `Unsubscribe` リンクをクリックして、サブスクリプションの設定を更新しました。  | 

## SES イベントスキーマリファレンス
<a name="eventbridge-events"></a>

 AWS サービスからのすべてのイベントには、イベントのソースである AWS サービス、イベントが生成された時刻、イベントが発生したアカウントとリージョンなど、イベントに関するメタデータを含む共通のフィールドセットがあります。これらの一般的なフィールドの定義については、「*EventBridge ユーザーガイド*」の「[イベント構造リファレンス](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-events-structure.html)」を参照してください。

さらに、各イベントには、その特定のイベントに固有のデータを含む `detail` フィールドがあります。以下のリファレンスでは、さまざまな SES イベントの詳細フィールドを定義しています。

EventBridge を使用して SES イベントの選択と管理を行う場合、以下の点に留意するのが有用です。
+ SES からのすべてのイベントの `source` フィールドは、`aws.ses` に設定されています。
+ `detail-type` フィールドはイベントタイプを指定します。「[SES イベント](#supported-events)」のイベントタイプ表を参照してください。
+ `detail` フィールドには、その特定のイベントに固有のデータが含まれます。

  Virtual Deliverability Manager など、一部のイベントタイプでは、詳細フィールドは、静的値の有限なセットから入力される比較的シンプルなデータ文字列です。逆に、E メール送信イベントの詳細フィールドは、E メールの送信日時のタイムスタンプ、受信者アドレス、その他のさまざまな E メール属性など、静的値と動的値の両方を組み合わせた多くの詳細サブフィールドで構成されているため、より複雑になります。

**Topics**
+ [Virtual Deliverability Manager アドバイザーのステータススキーマ](#schema-resource-status-event-vdm)
+ [SES E メール送信ステータスのスキーマ](#schema-resource-status-event-email-sending)

### Virtual Deliverability Manager アドバイザーのステータススキーマ
<a name="schema-resource-status-event-vdm"></a>

以下のスキーマリファレンスでは、Virtual Deliverability Manager アドバイザーのステータスイベント固有のフィールドを定義しています。

すべてのイベントスキーマ (`version`、`id`、`account` など) に表示される一般的なフィールドの定義は、「*EventBridge ユーザーガイド*」の「[イベント構造リファレンス](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-events-structure.html)」に記載されています。`source` および `detail-type` フィールドには SES イベントの SES 固有の値が含まれているため、以下のリファレンスに含まれています。

`source`  
イベントを発生させたサービスを識別します。SES イベントの場合、この値は `aws.ses` です。

`detail-type`  
イベントのタイプを示します。  
このフィールドの値は、「[SES イベント](#supported-events)」の 「*Virtual Deliverability Manager アドバイザーイベント*」表に記載されています。

`detail`  
イベントに関する情報を含む JSON オブジェクト。このフィールドの内容は、イベントを生成するサービスによって決まります。  
このフィールドで想定される値は、以下のとおりです。  
+ `DKIM verification is not enabled.`
+ `DKIM verification has failed.`
+ `DKIM signing key length is below 2048 bits.`
+ `DMARC configuration was not found.`
+ `DMARC configuration could not be parsed.`
+ `DKIM record was not found.`
+ `DKIM record is not aligned.`
+ `MAIL FROM record is not aligned.`
+ `SPF record was not found.`
+ `SPF record for Amazon SES was not found.`
+ `SPF all qualifier is missing.`
+ `An SPF configuration issue was found.`
+ `BIMI record not found or configured without default selector.`
+ `BIMI has malformed TXT record.`

**Example 例: Virtual Deliverability Manager アドバイザーのステータスイベント**  <a name="schema-resource-status-event-vdm.example"></a>
以下は、イベントタイプが `Advisor Recommendation Status Open` の場合の Virtual Deliverability Manager アドバイザーのステータスイベントの例です。この例の詳細なイベント値は `SPF record was not found.` です。  

```
{
 "version": "0",
  "id": "abcd9999-ef33-0123-90ab-abcdef666666",
  "detail-type": "Advisor Recommendation Status Open",
  "source": "aws.ses",
  "account": "012345678901",
  "time": "2023-11-15T17:00:59Z",
  "region": "us-east-1",
  "resources": [
    "arn:aws:ses:us-east-1:012345678901:identity/vdm.events-publishing.cajun.syster-games.example.com"
  ],
  "detail": { "version": "1.0.0", "data": "SPF record was not found." }
}
```

### SES E メール送信ステータスのスキーマ
<a name="schema-resource-status-event-email-sending"></a>

以下のスキーマリファレンスでは、SES E　メール送信ステータスイベント固有のフィールドを定義しています。

すべてのイベントスキーマ (`version`、`id`、`account` など) に表示される一般的なフィールドの定義は、「*EventBridge ユーザーガイド*」の「[イベント構造リファレンス](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-events-structure.html)」に記載されています。`source` および `detail-type` フィールドには SES イベントの SES 固有の値が含まれているため、以下のリファレンスに含まれています。

`source`  
イベントを発生させたサービスを識別します。SES イベントの場合、この値は `aws.ses` です。

`detail-type`  
イベントのタイプを示します。  
このフィールドの値は、「[SES イベント](#supported-events)」の 「*SES E メール送信イベント*」表に記載されています。

`detail`  
イベントに関する情報を含む JSON オブジェクト。このフィールドの内容は、イベントを生成するサービスによって決まります。  
このフィールドに指定できる値は、特定の時点で送信される一意の E メールごとに生成される静的値と動的値で構成されるため、ここにすべては一覧表示できません。ここでは、このフィールドに含めることができるタイプのデータを認識しておく目的で、例を示します。*すべての E メール送信イベントタイプの詳細データ例は、EventBridge Sandbox を使用して取得できます。「[EventBridge でサンプルイベントを指定する](#event-pattern-sandbox-sample)」を参照してください*。  
SES E メール送信イベント `Email Rendering Failed` に対して生成された詳細データの例:  

```
...,
  "detail": {
    "eventType": "Rendering Failure",
    "mail": {
      "timestamp": "2018-01-22T18:43:06.197Z",
      "source": "sender@example.com",
      "sourceArn": "arn:aws:ses:us-east-1:123456789012:identity/sender@example.com",
      "sendingAccountId": "123456789012",
      "messageId": "EXAMPLE7c191be45-e9aedb9a-02f9-4d12-a87d-dd0099a07f8a-000000",
      "destination": ["recipient@example.com"],
      "headersTruncated": false,
      "tags": {
        "ses:configuration-set": ["ConfigSet"]
      }
    },
    "failure": {
      "errorMessage": "Attribute 'attributeName' is not present in the rendering data.",
      "templateName": "MyTemplate"
    }
  }
```

**Example 例: E メール送信ステータスのイベント**  <a name="schema-resource-status-event-email-sending.example"></a>
イベントタイプ `Email Rendering Failed` の E メール送信ステータスイベント全体の例は、以下のとおりです。この例の詳細イベント値は、特定の E メールの E メール送信イベントに基づく静的値と動的値の組み合わせです。  

```
{
  "version": "0",
  "id": "12a18625-3328-fafd-2809-a5e16004f112",
  "detail-type": "Email Rendering Failed",
  "source": "aws.ses",
  "account": "123456789012",
  "time": "2023-07-17T16:48:05Z",
  "region": "us-east-1",
  "resources": ["arn:aws:ses:us-east-1:123456789012:identity/example.com"],
  "detail": {
    "eventType": "Rendering Failure",
    "mail": {
      "timestamp": "2018-01-22T18:43:06.197Z",
      "source": "sender@example.com",
      "sourceArn": "arn:aws:ses:us-east-1:123456789012:identity/sender@example.com",
      "sendingAccountId": "123456789012",
      "messageId": "EXAMPLE7c191be45-e9aedb9a-02f9-4d12-a87d-dd0099a07f8a-000000",
      "destination": ["recipient@example.com"],
      "headersTruncated": false,
      "tags": {
        "ses:configuration-set": ["ConfigSet"]
      }
    },
    "failure": {
      "errorMessage": "Attribute 'attributeName' is not present in the rendering data.",
      "templateName": "MyTemplate"
    }
  }
}
```

## SES イベントでの EventBridge の使用
<a name="eventbridge-enable-event-notifications"></a>

デフォルトで SES は、EventBridge のデフォルトイベントバスにイベントを送信します。デフォルトイベントバスにルールを作成して、EventBridge が 1 つ以上の指定されたターゲットに送信する特定のイベントを特定できます。各ルールには、EventBridge がイベントバスに到着したイベントの照合に使用する*イベントパターン*が含まれています。イベントが指定されたルールのイベントパターンに一致すると、EventBridge はルールで指定されたターゲットにイベントを送信します。

EventBridge でのイベントパターンの定義は、通常、新しいルールの作成や既存のルールの編集という、より大きなプロセスの一環として行います。EventBridge ルールを作成する方法については、「*EventBridge ユーザーガイド*」の「[イベントに反応する Amazon EventBridge ルールの作成](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-create-rule.html)」を参照してください。

EventBridge のサンドボックス機能を使用すると、まずルールを作成したり編集したりする必要なく、イベントパターンを迅速に定義し、サンプルイベントを使用してパターンが目的のイベントと一致することを確認できます。サンドボックスの詳細な使用方法については、「*EventBridge ユーザーガイド*」の「[EventBridge サンドボックスを使用したイベントパターンのテスト](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-event-pattern-sandbox.html)」を参照してください。

### EventBridge サンドボックスで SES サンプルイベントを指定する
<a name="event-pattern-sandbox-sample"></a>

SES イベントのサンプルイベントを選択して、作成したイベントパターンのテストに使用できます。

**EventBridge サンドボックスで SES サンプルイベントを指定するには**

1. Amazon EventBridge コンソールの [https://console.aws.amazon.com/events/](https://console.aws.amazon.com/events/) を開いてください。

1. ナビゲーションペインで **[デベロッパーリソース]**、**[サンドボックス]** の順に選択し、**[サンドボックス]** ページで **[イベントパターン]** タブを選択します。

1. **[イベントソース]** で、**[AWS イベントまたは EventBridge パートナーイベント]** を選択してください。

1. **[サンプルイベント]** セクションの **[サンプルイベントタイプ]** で、**[AWS イベント]** を選択します。

1. **[サンプルイベント]** で、**[SES]** までスクロールし、目的の SES イベントを選択します。

   EventBridge は、該当するイベントタイプのサンプルイベントとそのすべての詳細データを表示します。

   このイベントを使用して、**[イベントパターン]** セクションで作成したイベントパターンをテストしたり、パターンテスト用の独自のサンプルイベントを作成するための基盤として使用したりできます。

### SES イベントのイベントパターンの作成とテスト
<a name="event-pattern-sandbox"></a>

前のセクションで説明したとおり、サンプルイベントを選択したら、イベントパターンを作成し、サンプルイベントを使用して、必要となるイベントと一致していることを確認できます。

**EventBridge サンドボックス内の SES イベントと一致するイベントパターンを作成してテストするには**

1. Amazon EventBridge コンソールの [https://console.aws.amazon.com/events/](https://console.aws.amazon.com/events/) を開いてください。

1. ナビゲーションペインで **[デベロッパーリソース]**、**[サンドボックス]** の順に選択し、**[サンドボックス]** ページで **[イベントパターン]** タブを選択します。

1. **[イベントソース]** では、**[AWS イベント] または [EventBridge パートナーイベント]** を選択し、前のセクションで説明したとおり、テストするサンプルイベントを選択します。

1. **[作成方法]** まで下にスクロールして、**[パターンフォームを使用する]** を選択します。

1. **[イベントパターン]** セクションの **[イベントソース]** で **[AWS サービス]** を選択します。

1. **[AWS のサービス]** で **[SES]** を選択します。

1. **[イベントタイプ]** で、一致させたい SES イベントタイプを選択します。

   EventBridge は、選択した SES イベントと一致する最小のイベントパターンを `source` と `detail-type` フィールドで構成して表示します。

   この 2 つの例では、最初のイベントパターンはすべての `Advisor Recommendation Status Resolved` イベントと一致し、2 番目のイベントパターンはすべての `Email Bounced` イベントと一致します。

   ```
   {
     "source": ["aws.ses"],
     "detail-type": ["Advisor Recommendation Status Resolved"]
   }
   ```

   ```
   {
     "source": ["aws.ses"],
     "detail-type": ["Email Bounced"]
   }
   ```

1. イベントパターンを変更するには、**[パターンを編集]** をクリックして、JSON エディタで変更を行います。

   1 つ以上の詳細データフィールドの値と照合することもできます。これには、1 つのフィールド値に対して複数の可能な値を指定することも含まれます。

   次の例では、同じ詳細値を持つすべての Virtual Deliverability Manager アドバイザーイベントを検索するために、`DKIM record was not found` と指定された `data` フィールド値を持つ、生成された最小イベントパターンに詳細フィールドが追加されました。

   ```
   {
     "source": ["aws.ses"],
     "detail-type": ["Advisor Recommendation Status Resolved"],
     "detail": {
       "data": ["DKIM record was not found."]
     }
   }
   ```

   この例では、*2024-08-05* に *noreply@example.com* から送信されたすべての E メールがバウンスしたことで生成されたイベントを報告するために、詳細サブフィールドが追加されました。(ここでは、[コンテンツフィルタリング](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-event-patterns-content-based-filtering.html)の一環として、プレフィックスフィルタリングが使用されています)。

   ```
   {
     "source": ["aws.ses"],
     "detail-type": ["Email Bounced"],
     "detail": {
       "mail": {
         "timestamp": [{
           "prefix": "2024-08-05"
         }],
         "source": ["noreply@example.com"]
       }
     }
   }
   ```

   「*EventBridge ユーザーガイド*」の「[イベントパターン](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-event-patterns.html)」を読んでおくことが重要です。このセクションでは、JSON エディタで入力するイベントパターンの値は配列と見なされるため、角括弧 `[...]` で囲む必要があることが説明されています。この点と、高度なイベントパターンを構築する方法に関する詳細も提供されています。

1. イベントパターンが、上記の **[サンプルイベント]** ペインで指定したサンプルイベントと一致するかをテストするには、**[パターンのテスト]** をクリックします。一致すると、JSON エディタの下部に緑色のバナーが表示され、「*サンプルイベントがイベントパターンと一致しました*」と表示されます。

1. **[パターンのテスト]** をクリックした後のエラーをトラブルシューティングするには:
   + JSON 関連のエラーが発生した場合、メッセージには「*イベントパターンが不正です」などの理由が表示されます。理由:「data」は、行: 5、列: 14 のオブジェクトまたは配列である必要があります*。これを修正するには、5 行目の値を角括弧 `[...]` で囲みます。
   + *サンプルイベント*の値と*イベントパターン*が一致しない場合は、「*サンプルイベントがイベントパターンと一致しませんでした*」というメッセージが表示されます。これは、テストする単数または複数の値が、*サンプルイベント*ジェネレータによって生成されたサンプル値とは異なることを意味します。これを修正するには、残りのステップを続行します。

1. *イベントパターン*のテストを正常に完了するために*サンプルイベント*のサンプル値を変更するには、**[サンプルイベント]** ペインで、JSON エディタの下にある **[コピー]** をクリックします。

1. エディタの上部にある **[サンプルイベントタイプ]** の **[独自のサンプルイベントを入力]** の横にあるラジオボタンをオンにします

1. サンプルイベントを JSON エディタに貼り付けます。イベントパターンで使用しているフィールドについては、その同じフィールドの値をイベントパターンで指定した値に合わせて置き換えます。

1. イベントパターンペインまで下にスクロールして、**[パターンのテスト]** をもう一度クリックします。すべての値が適切に入力されて一致すると、JSON エディタの下部に緑色のバナーが表示され、「*サンプルイベントがイベントパターンと一致しました*」と表示されます。

## 追加の EventBridge リソース
<a name="eventbridge-additonal-resources"></a>

EventBridge を使用してイベントを処理および管理する方法の詳細については、「[https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-what-is.html](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-what-is.html)」の以下のトピックを参照してください。
+ イベントバスの仕組みの詳細については、「[Amazon EventBridge イベントバス](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-event-bus.html)」を参照してください。
+ イベント構造については、[イベント](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-events.html)のページを参照してください。
+ イベントをルールと照合するときに使用する EventBridge のイベントパターンの構築については、[イベントパターン](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-event-patterns.html)のページを参照してください。
+ EventBridge が処理するイベントを指定するルールを作成する方法については、[ルール](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-rules.html)のページを参照してください。
+ EventBridge がマッチしたイベントを送信するサービスやその他の宛先を指定する方法については、[ターゲット](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-targets.html)のページを参照してください。