

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

# チュートリアル: CloudWatch Events ルールをセットアップし、パイプラインの状態の変更の E メール通知を送信します。
<a name="tutorials-cloudwatch-sns-notifications"></a>

でパイプラインを設定したら AWS CodePipeline、パイプラインの実行状態、またはパイプラインのステージやアクションに変更があるたびに通知を送信するように CloudWatch Events ルールを設定できます。CloudWatch Events を使用してパイプラインの状態の変更の通知をセットアップする方法の詳細は、[CodePipeline イベントのモニタリング](detect-state-changes-cloudwatch-events.md) を参照してください。

このチュートリアルでは、パイプラインの状態が失敗に変わったら E メールを送信する通知を設定します。このチュートリアルでは、CloudWatch Events ルールを作成するときの入力変換方法を使用します。メッセージスキーマの詳細を変換し、人間が読み取れるテキストでメッセージを配信します。

**注記**  
Amazon SNS 通知や CloudWatch Events ルールなど、このチュートリアルのリソースを作成するときは、リソースがパイプラインと同じ AWS リージョンに作成されていることを確認します。

**Topics**
+ [ステップ 1 : Amazon SNS を使用して E メール通知をセットアップします。](#create-filter-for-target)
+ [ステップ 2: ルールを作成し SNS トピックをターゲットとして追加する](#create-notification-rule)
+ [ステップ 3: リソースをクリーンアップする](#notifications-clean-up-resources)

## ステップ 1 : Amazon SNS を使用して E メール通知をセットアップします。
<a name="create-filter-for-target"></a>

Amazon SNS は、トピックの使用を調整して、サブスクライブしているエンドポイントやクライアントへのメッセージを配信します。Amazon SNS を使用して通知トピックを作成してから、E メールアドレスを使用してトピックをサブスクライブします。Amazon SNS トピックが CloudWatch Events ルールにターゲットとして追加されます。詳細については、「[Amazon Simple Notification Service デベロッパーガイド](https://docs.aws.amazon.com/sns/latest/dg/)」を参照してください。

Amazon SNS でトピックを作成または識別します。CodePipeline は CloudWatch Events を使用して、Amazon SNS を介してこのトピックに通知を送信します。トピックを作成するには:

1. Amazon SNS コンソール（[https://console.aws.amazon.com/sns](https://console.aws.amazon.com/sns)）を開きます。

1. [**トピックの作成**] を選択します。

1. [**Create new topic (新しいトピックの作成)**] ダイアログボックスの [**Topic name (トピック名)**] で、トピックの名前 (例: **PipelineNotificationTopic**) を入力します。  
![\[Amazon SNS を使用して通知トピックを作成します。\]](http://docs.aws.amazon.com/ja_jp/codepipeline/latest/userguide/images/tutorial-SNS-topic.png)

1. **[トピックを作成]** を選択します。

   詳細については、*Amazon SNS デベロッパーガイド* の [トピックの作成](https://docs.aws.amazon.com/sns/latest/dg/CreateTopic.html) を参照してください。

1 つかそれ以上の受信者にトピックをサブスクライブさせ、E メール通知を受け取ります。受信者にトピックをサブスクライブさせるには:

1. Amazon SNS コンソールで、**トピック** リストから、新しいトピックの横にあるチェックボックスを選択します。[**Actions, Subscribe to topic**] を選択します。

1. [**Create subscription**] ダイアログボックスで、ARN が [**Topic ARN**] に表示されていることを確認します。

1. [**Protocol (プロトコル)**] として [**Email (E メール)**] を選択してください。

1. [**Endpoint**] に、新しい受信者の完全な E メールアドレスを入力します。

1. **[Create Subscription]** (サブスクリプションの作成) を選択します。

1. Amazon SNS は受信者にサブスクリプション確認の E メールを送信します。E メール通知を受信するには、受信者は、この E メールで [**サブスクリプションを確認**] リンクを選択する必要があります。受信者がリンクをクリックした後、正常にサブスクライブされたら、Amazon SNS により受信者のウェブブラウザに確認メッセージが表示されます。

   詳細については、*Amazon SNS デベロッパーガイド* の [トピックのサブスクライブ](https://docs.aws.amazon.com/sns/latest/dg/SubscribeTopic.html) を参照してください。

## ステップ 2: ルールを作成し SNS トピックをターゲットとして追加する
<a name="create-notification-rule"></a>

CodePipeline でイベント出典として CloudWatch Events 通知ルールを作成します。

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

1. ナビゲーションペインの **Events**] を選択します。

1. **Create rule** を選択します。[**イベントソース**] で、[**AWS CodePipeline**] を選択します。[**イベントタイプ**] で、**パイプライン実行の状態変更**を選択します。

1. [**特定の状態**] を選択し、[**FAILED**] を選択します。

1. [**編集**] を選択し、[**イベントパターンのプレビュー**] ペインで JSON テキストエディタを開きます。**pipeline** パラメータを、次の例 (「myPipeline」という名前のパイプライン) に示すように、パイプラインの名前とともに追加します。

   ここでイベントパターンをコピーしてコンソールに貼り付けることができます。

   ```
   {
     "source": [
       "aws.codepipeline"
     ],
     "detail-type": [
       "CodePipeline Pipeline Execution State Change"
     ],
     "detail": {
       "state": [
         "FAILED"
       ],
       "pipeline": [
         "myPipeline"
       ]
     }
   }
   ```

1. [**Targets**] で、[**Add target**] を選択します。

1. ターゲットのリストで、[**SNS トピック**] を選択します。[**トピック**] に、作成したトピックを入力します。

1. [**入力の設定**] を展開して、[**インプットトランスフォーマー**] を閉じます。

1. [**入力パス**] ボックスに、次のキーと値のペアを入力します。

   ```
   { "pipeline" : "$.detail.pipeline" }
   ```

   [**入力テンプレート**] ボックスに、以下のように入力します。

   ```
   "The Pipeline <pipeline> has failed."
   ```

1. [**詳細の設定**] を選択します。

1. [**ルールの詳細を設定する**] ページで、名前とオプションの説明を入力します。[**状態**] では、[**有効**] ボックスをオンのままにします。

1. **[‬ルールを作成]‭** を選択します。

1. CodePipeline が構築通知を現在送信していることを確認します。たとえば、ビルド通知 E メールが受信トレイにあるかどうかを確認します。

1. ルールの動作を変更するには、CloudWatch コンソールで、ルールを選択してから、**アクション**、**編集** の順に選択します。ルールを編集し、[**詳細設定**] を選択し、[**Update**] を選択します。

   ルールがビルド通知を送信するのを停止するには、CloudWatch コンソールで、ルールを選択してから、**アクション**、**無効化** を選択します。

   ルールを削除するには、 CloudWatch コンソールで、ルールを選択してから、**アクション**、**削除** の順に選択します。

## ステップ 3: リソースをクリーンアップする
<a name="notifications-clean-up-resources"></a>

これらのチュートリアルが完了したら、使用したパイプラインおよびリソースを削除する必要があるため、このリソースに対する継続利用料金がかかることはありません。

SNS 通知をクリーンアップして Amazon CloudWatch Events ルールを削除する方法については、[ クリーンアップ (Amazon SNSトピックからの退会)](https://docs.aws.amazon.com/sns/latest/dg/CleanUp.html) および [Amazon CloudWatch Events API リファレンス](https://docs.aws.amazon.com/AmazonCloudWatchEvents/latest/APIReference/) の `DeleteRule` リファレンスを参照してください。