

# AWS CLI を使用した EventBridge の例
<a name="cli_eventbridge_code_examples"></a>

次のコード例は、EventBridgeで AWS Command Line Interface を使用してアクションを実行し、一般的なシナリオを実装する方法を示しています。

*アクション*はより大きなプログラムからのコードの抜粋であり、コンテキスト内で実行する必要があります。アクションは個々のサービス機能を呼び出す方法を示していますが、コンテキスト内のアクションは、関連するシナリオで確認できます。

各例には完全なソースコードへのリンクが含まれており、コードの設定方法と実行方法に関する手順を確認できます。

**Topics**
+ [アクション](#actions)

## アクション
<a name="actions"></a>

### `delete-rule`
<a name="eventbridge_DeleteRule_cli_topic"></a>

次のコード例は、`delete-rule` を使用する方法を示しています。

**AWS CLI**  
**CloudWatch Events ルールを削除するには**  
この例は、EC2InstanceStateChanges という名前のルールを削除します。  

```
aws events delete-rule --name "EC2InstanceStateChanges"
```
+  API の詳細については、AWS CLI コマンドリファレンスの「[DeleteRule](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/events/delete-rule.html)」を参照してください。**

### `describe-rule`
<a name="eventbridge_DescribeRule_cli_topic"></a>

次のコード例は、`describe-rule` を使用する方法を示しています。

**AWS CLI**  
**CloudWatch Events ルールに関する情報を表示するには**  
この例は、DailyLambdaFunction という名前のルールに関する情報を表示します。  

```
aws events describe-rule --name "DailyLambdaFunction"
```
+  API の詳細については、AWS CLI コマンドリファレンスの「[DescribeRule](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/events/describe-rule.html)」を参照してください。**

### `disable-rule`
<a name="eventbridge_DisableRule_cli_topic"></a>

次のコード例は、`disable-rule` を使用する方法を示しています。

**AWS CLI**  
**CloudWatch Events ルールを無効にするには**  
この例は、DailyLambdaFunction という名前のルールを無効にします。ルールは削除されません。  

```
aws events disable-rule --name "DailyLambdaFunction"
```
+  API の詳細については、AWS CLI コマンドリファレンス**の「[DisableRule](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/events/disable-rule.html)」を参照してください。

### `enable-rule`
<a name="eventbridge_EnableRule_cli_topic"></a>

次のコード例は、`enable-rule` を使用する方法を示しています。

**AWS CLI**  
**CloudWatch Events ルールを有効にするには**  
この例は、無効になっていた DailyLambdaFunction という名前のルールを有効にします。  

```
aws events enable-rule --name "DailyLambdaFunction"
```
+  API の詳細については、AWS CLI コマンドリファレンス**の「[EnableRule](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/events/enable-rule.html)」を参照してください。

### `list-rule-names-by-target`
<a name="eventbridge_ListRuleNamesByTarget_cli_topic"></a>

次のコード例は、`list-rule-names-by-target` を使用する方法を示しています。

**AWS CLI**  
**ターゲットが指定されているルールをすべて表示するには**  
この例は、「MyFunctionName」という名前の Lambda 関数をターゲットとするすべてのルールを表示します。  

```
aws events list-rule-names-by-target --target-arn "arn:aws:lambda:us-east-1:123456789012:function:MyFunctionName"
```
+  API の詳細については、AWS CLI コマンドリファレンスの「[ListRuleNamesByTarget](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/events/list-rule-names-by-target.html)」を参照してください。**

### `list-rules`
<a name="eventbridge_ListRules_cli_topic"></a>

次のコード例は、`list-rules` を使用する方法を示しています。

**AWS CLI**  
**すべての CloudWatch Events ルールを一覧表示するには**  
この例は、リージョン内のすべての CloudWatch Events ルールを表示します。  

```
aws events list-rules
```
**特定の文字列で始まる CloudWatch Events ルールを一覧表示するには**  
この例では、名前が「Daily」で始まるリージョン内のすべての CloudWatch Events ルールを表示します。  

```
aws events list-rules --name-prefix "Daily"
```
+  API の詳細については、AWS CLI コマンドリファレンスの「[ListRules](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/events/list-rules.html)」を参照してください。**

### `list-targets-by-rule`
<a name="eventbridge_ListTargetsByRule_cli_topic"></a>

次のコード例は、`list-targets-by-rule` を使用する方法を示しています。

**AWS CLI**  
**CloudWatch Events ルールのすべてのターゲットを表示するには**  
この例は、DailyLambdaFunction という名前のルールのすべてのターゲットを表示します。  

```
aws events list-targets-by-rule --rule  "DailyLambdaFunction"
```
+  API の詳細については、AWS CLI コマンドリファレンスの「[ListTargetsByRule](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/events/list-targets-by-rule.html)」を参照してください。**

### `put-events`
<a name="eventbridge_PutEvents_cli_topic"></a>

次のコード例は、`put-events` を使用する方法を示しています。

**AWS CLI**  
**カスタムイベントを CloudWatch Events に送信するには**  
この例は、カスタムイベントを CloudWatch Events に送信します。このイベントは putevents.json ファイルに含まれています。  

```
aws events put-events --entries file://putevents.json
```
putevents.json ファイルの内容は次のとおりです。  

```
[
  {
    "Source": "com.mycompany.myapp",
    "Detail": "{ \"key1\": \"value1\", \"key2\": \"value2\" }",
    "Resources": [
      "resource1",
      "resource2"
    ],
    "DetailType": "myDetailType"
  },
  {
    "Source": "com.mycompany.myapp",
    "Detail": "{ \"key1\": \"value3\", \"key2\": \"value4\" }",
    "Resources": [
      "resource1",
      "resource2"
    ],
    "DetailType": "myDetailType"
   }
]
```
+  API の詳細については、AWS CLI コマンドリファレンスの「[PutEvents](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/events/put-events.html)」を参照してください。**

### `put-rule`
<a name="eventbridge_PutRule_cli_topic"></a>

次のコード例は、`put-rule` を使用する方法を示しています。

**AWS CLI**  
**CloudWatch Events ルールを作成するには**  
この例は、毎日午前 9:00 (UTC) にトリガーされるルールを作成します。put-targets を使用して Lambda 関数をこのルールのターゲットとして追加すると、指定した時刻に Lambda 関数を毎日実行できます。  

```
aws events put-rule --name "DailyLambdaFunction" --schedule-expression "cron(0 9 * * ? *)"
```
この例は、リージョン内の任意の EC2 インスタンスの状態が変わったときにトリガーされるルールを作成します。  

```
aws events put-rule --name "EC2InstanceStateChanges" --event-pattern "{\"source\":[\"aws.ec2\"],\"detail-type\":[\"EC2 Instance State-change Notification\"]}"  --role-arn "arn:aws:iam::123456789012:role/MyRoleForThisRule"
```
この例は、リージョン内の任意の EC2 インスタンスが停止または終了したときにトリガーされるルールを作成します。  

```
aws events put-rule --name "EC2InstanceStateChangeStopOrTerminate" --event-pattern "{\"source\":[\"aws.ec2\"],\"detail-type\":[\"EC2 Instance State-change Notification\"],\"detail\":{\"state\":[\"stopped\",\"terminated\"]}}" --role-arn "arn:aws:iam::123456789012:role/MyRoleForThisRule"
```
+  API の詳細については、AWS CLI コマンドリファレンスの「[PutRule](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/events/put-rule.html)」を参照してください。**

### `put-targets`
<a name="eventbridge_PutTargets_cli_topic"></a>

次のコード例は、`put-targets` を使用する方法を示しています。

**AWS CLI**  
**CloudWatch Events ルールのターゲットを追加するには**  
この例は、ルールのターゲットとして Lambda 関数を追加します。  

```
aws events put-targets --rule DailyLambdaFunction --targets "Id"="1","Arn"="arn:aws:lambda:us-east-1:123456789012:function:MyFunctionName"
```
この例は、Amazon Kinesis ストリームをターゲットとして設定し、このルールによって捕捉されたイベントがストリームに中継されるようにします。  

```
aws events put-targets --rule EC2InstanceStateChanges --targets "Id"="1","Arn"="arn:aws:kinesis:us-east-1:123456789012:stream/MyStream","RoleArn"="arn:aws:iam::123456789012:role/MyRoleForThisRule"
```
この例は、2 つの Amazon Kinesis ストリームを 1 つのルールのターゲットとして設定します。  

```
aws events put-targets --rule DailyLambdaFunction --targets "Id"="Target1","Arn"="arn:aws:kinesis:us-east-1:379642911888:stream/MyStream1","RoleArn"="arn:aws:iam::379642911888:role/ MyRoleToAccessLambda"  "Id"="Target2"," Arn"="arn:aws:kinesis:us-east-1:379642911888:stream/MyStream2","RoleArn"="arn:aws:iam::379642911888:role/MyRoleToAccessLambda"
```
+  API の詳細については、AWS CLI コマンドリファレンスの「[PutTargets](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/events/put-targets.html)」を参照してください。**

### `remove-targets`
<a name="eventbridge_RemoveTargets_cli_topic"></a>

次のコード例は、`remove-targets` を使用する方法を示しています。

**AWS CLI**  
**イベントのターゲットを削除するには**  
この例は、MyStream1 という名前の Amazon Kinesis ストリームを、DailyLambdaFunction というルールのターゲットから削除します。DailyLambdaFunction が作成されたとき、このストリームは Target1 の ID を持つターゲットとして設定されました。  

```
aws events remove-targets --rule "DailyLambdaFunction" --ids "Target1"
```
+  API の詳細については、AWS CLI コマンドリファレンス**の「[RemoveTargets](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/events/remove-targets.html)」を参照してください。

### `test-event-pattern`
<a name="eventbridge_TestEventPattern_cli_topic"></a>

次のコード例は、`test-event-pattern` を使用する方法を示しています。

**AWS CLI**  
**イベントパターンが指定されたイベントと一致するかどうかを確認するには**  
この例では、パターン「source:com.mycompany.myapp」が指定されたイベントと一致するかどうかをテストします。この例では、出力は「true」になります。  

```
aws events test-event-pattern --event-pattern "{\"source\":[\"com.mycompany.myapp\"]}" --event "{\"id\":\"1\",\"source\":\"com.mycompany.myapp\",\"detail-type\":\"myDetailType\",\"account\":\"123456789012\",\"region\":\"us-east-1\",\"time\":\"2017-04-11T20:11:04Z\"}"
```
+  API の詳細については、「*AWS CLI コマンドリファレンス*」の「[TestEventPattern](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/events/test-event-pattern.html)」を参照してください。