

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

# チュートリアル: EventBridge を使用して Amazon Kinesis ストリームにイベントを送信する
<a name="eb-relay-events-kinesis-stream"></a>

EventBridge の AWS API コール[イベント](eb-events.md)を [Amazon Kinesis ストリーム](https://docs.aws.amazon.com/streams/latest/dev/introduction.html)に送信したり、Kinesis Data Streams アプリケーションを作成したり、大量のデータを処理したりできます。このチュートリアルでは、Kinesis ストリームを作成し、[Amazon EC2](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/concepts.html) インスタンスが停止したときにそのストリームにイベントを送信する[ルール](eb-rules.md)を EventBridge コンソールで作成します。

**Topics**
+ [前提条件](#eb-stream-prerequisite)
+ [ステップ 1: Amazon Kinesis ストリームを作成する](#eb-stream-create-stream)
+ [ステップ 2: ルールを作成する](#eb-stream-create-rule)
+ [ステップ 3: ルールをテストする](#eb-stream-test-rule)
+ [ステップ 4: イベントが送信されたことを確認する](#eb-stream-verify-event)
+ [ステップ 5: リソースをクリーンアップする](#cleanup)

## 前提条件
<a name="eb-stream-prerequisite"></a>

このチュートリアルでは、以下を使用します。
+ を使用して AWS CLI Kinesis ストリームを操作します。

  をインストールするには AWS CLI、[「 AWS CLI バージョン 2 のインストール、更新、アンインストール](https://docs.aws.amazon.com/cli/latest/userguide/install-cliv2.html)」を参照してください。

**注記**  
このチュートリアルでは、 AWS イベントと組み込み`aws.events`スキーマレジストリを使用します。カスタムイベントをカスタムスキーマレジストリに手動で追加するか、スキーマ検出を使用することで、カスタムイベントのスキーマに基づいて EventBridge ルールを作成することもできます。  
スキーマの詳細については、「[Amazon EventBridge スキーマ](eb-schema.md)」を参照してください。他のイベントパターンオプションを使用してルールを作成する方法の詳細については、「[拡張ビルダーを使用したルールの作成](eb-create-rule-visual.md)」を参照してください。

## ステップ 1: Amazon Kinesis ストリームを作成する
<a name="eb-stream-create-stream"></a>

ストリームを作成するには、コマンドプロンプトで コマンドを使用します`create-stream` AWS CLI 。

```
aws kinesis create-stream --stream-name {{test}} --shard-count 1
```

ストリームのステータスが `ACTIVE` の場合、ストリームは準備完了です。ストリームの状態を確認するには、`describe-stream` コマンドを使用します。

```
aws kinesis describe-stream --stream-name {{test}}
```

## ステップ 2: ルールを作成する
<a name="eb-stream-create-rule"></a>

Amazon EC2 インスタンスを停止したときにイベントをストリームに送信するルールを作成します。

**ルールを作成するには:**

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

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

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

1. ルールの名前と説明を入力します。例えば、ルール `TestRule` に名前を付けます

1. **[Event bus]** (イベントバス) として、**[default]** (デフォルト) を選択します。

1. **[ルールタイプ]** で、**[イベントパターンを持つルール]** を選択してください。

1. [**次へ**] を選択します。

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

1. **[Creation method]** (作成方法) で、**[Use schema]** (スキーマを使用する) を選択します。

1. **[Event pattern]** (イベントパターン) の場合は次のいずれかを実行します。

   1. **[Schema type]** (スキーマの種類) で、**[Select schema from Schema registry]** (スキーマレジストリからスキーマを選択する) を選択します。

   1. **[Schema registry]** (スキーマレジストリ) で、ドロップダウンリストから **[aws.events]** を選択します。

   1. **[Schema]** (スキーマ) で、ドロップダウンリストから **[aws.ec2@EC2InstanceStateChangeNotification]** を選択します。

      EventBridge で **[Models]** (モデル) の下にイベントスキーマが表示されます。

      EventBridge で、イベントパターン用としてではなく、*イベント用*として必要なプロパティの横に赤いアスタリスクが表示されます。

   1. **[Models]** (モデル) で、以下のイベントフィルタープロパティを設定します。

      1. **[state]** プロパティの横にある **[\+ Edit]** (\+ 編集) を選択します。

         **[Relationship]** (関係) は空のままにします。**[Value]** (値) に「`running`」と入力します。**[Set]** (セット) を選択します。

      1. **[source]** プロパティの横にある **[\+ Edit]** (\+ 編集) を選択します。

         **[Relationship]** (関係) は空のままにします。**[Value]** (値) に「`aws.ec2`」と入力します。**[Set]** (セット) を選択します。

      1. **[detail-type]** プロパティの横にある **[\+ Edit]** (\+ 編集) を選択します。

         **[Relationship]** (関係) は空のままにします。**[Value]** (値) に「`EC2 Instance State-change Notification`」と入力します。**[Set]** (セット) を選択します。

   1. 作成したイベントパターンを表示するには、**[Generate event pattern in JSON]** (JSON でイベントパターンを生成する) を選択します。

      EventBridge に JSON でイベントパターンが表示されます。

      ```
      {
        "detail": {
          "state": ["running"]
        },
        "detail-type": ["EC2 Instance State-change Notification"],
        "source": ["aws.ec2"]
      }
      ```

1. [**次へ**] を選択します。

1. **[ターゲットタイプ]** では、**[AWS サービス]** を選択します。

1. **[Select a target]** (ターゲットの選択) では、ドロップダウンリストから **[Kinesis stream]** (Kinesis ストリーム) を選択します。

1. **[Stream]** (ストリーム) として、**[Step 1: Create an Amazon Kinesis stream]** (ステップ 1: Amazon Kinesis ストリームの作成) セクションで作成した Kinesis ストリームを選択します。この例では、`test` を選択します。

1. **[Execution role]** (実行ロール) として、**[Create a new for role for this specific resource]** (この特定のリソースのための新しいロールを作成する) を選択します。

1. [**次へ**] を選択します。

1. [**次へ**] を選択します。

1. ルールの詳細を確認し、**[Create rule]** (ルールの作成) を選択します。

## ステップ 3: ルールをテストする
<a name="eb-stream-test-rule"></a>

ルールをテストするには、Amazon EC2 インスタンスを停止します。インスタンスが停止されるまで数分間待ったら、CloudWatch メトリクスを調べて、関数が実行されたことを確認します。

**インスタンスを停止してルールをテストするには**

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

1. インスタンスを起動します。詳細については、「*Amazon EC2 ユーザーガイド*」の「[Amazon EC2 インスタンスの起動](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/LaunchingAndUsingInstances.html)」を参照してください。

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

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

   作成したルールの名前を選択し、**[Metrics for the rule]** (ルールのメトリクス) を選択します。

1. (オプション) 終了したら、インスタンスを終了します。詳細については、「*Amazon EC2 ユーザーガイド*」の「[インスタンスを終了する](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/terminating-instances.html)」を参照してください。

## ステップ 4: イベントが送信されたことを確認する
<a name="eb-stream-verify-event"></a>

を使用してストリームからレコード AWS CLI を取得し、イベントが送信されたことを確認できます。

**レコードを取得するには**

1. Kinesis ストリームからの読み込みを開始するには、コマンドプロンプトで `get-shard-iterator` コマンドを使用します。

   ```
   aws kinesis get-shard-iterator --shard-id shardId-000000000000 --shard-iterator-type TRIM_HORIZON --stream-name {{test}}
   ```

   以下は出力の例です。

   ```
   {
       "ShardIterator": "AAAAAAAAAAHSywljv0zEgPX4NyKdZ5wryMzP9yALs8NeKbUjp1IxtZs1Sp+KEd9I6AJ9ZG4lNR1EMi+9Md/nHvtLyxpfhEzYvkTZ4D9DQVz/mBYWRO6OTZRKnW9gd+efGN2aHFdkH1rJl4BL9Wyrk+ghYG22D2T1Da2EyNSH1+LAbK33gQweTJADBdyMwlo5r6PqcP2dzhg="
   }
   ```

1. レコードを取得するには、次の `get-records` コマンドを使用します。前のステップの出力からシャードイテレーターを使用します。

   ```
   aws kinesis get-records --shard-iterator {{AAAAAAAAAAHSywljv0zEgPX4NyKdZ5wryMzP9yALs8NeKbUjp1IxtZs1Sp+KEd9I6AJ9ZG4lNR1EMi+9Md/nHvtLyxpfhEzYvkTZ4D9DQVz/mBYWRO6OTZRKnW9gd+efGN2aHFdkH1rJl4BL9Wyrk+ghYG22D2T1Da2EyNSH1+LAbK33gQweTJADBdyMwlo5r6PqcP2dzhg=}}
   ```

   コマンドが成功すると、指定シャードのストリームからレコードをリクエストします。0 以上のレコードを受け取ることができます。返されるレコードは、ストリーム内のすべてのレコードを表すとは限りません。ご希望のデータを受け取っていない場合は、`get-records` を継続して呼び出します。

1. Kinesis のレコードは Base64 でエンコードされています。Base64 デコーダーを使用してデータを復号すめと、それが JSON 形式でストリームに送信されたイベントであることを確認できます。

## ステップ 5: リソースをクリーンアップする
<a name="cleanup"></a>

このチュートリアル用に作成したリソースは、保持しない場合は削除できます。使用しなくなった AWS リソースを削除することで、 AWS アカウントへの不要な課金を防ぐことができます。

**EventBridge ルールを削除するには**

1. Eventbridge コンソールの [[Rules](https://console.aws.amazon.com/events/home#/rules)] (ルール) ページを開きます。

1. 作成したルールを選択します。

1. [**Delete**] (削除) を選択します。

1. [**Delete**] (削除) を選択します。

**Kinesis ストリームを削除するには**

1. Kinesis コンソールの [[Data streams](https://console.aws.amazon.com/kinesis/home#/streams/list)] (データストリーム) ページを開きます。

1. 作成したストリームを選択します。

1. **[アクション]**、**[削除]** の順に選択します。

1. fiekd で **delete** と入力し、[**Delete**] (削除) を選択します。