

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 使用 的 EventBridge 範例 AWS CLI
<a name="cli_eventbridge_code_examples"></a>

下列程式碼範例示範如何使用 AWS Command Line Interface 搭配 EventBridge 執行動作和實作常見案例。

*Actions* 是大型程式的程式碼摘錄，必須在內容中執行。雖然動作會告訴您如何呼叫個別服務函數，但您可以在其相關情境中查看內容中的動作。

每個範例均包含完整原始碼的連結，您可在連結中找到如何設定和執行內容中程式碼的相關指示。

**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 規則**  
此範例會建立規則，該規則會在每天 UTC 時間上午 9:00 時觸發。如果您使用 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"
```
此範例會將兩個 Amazon Kinesis 串流設定為單一規則的目標：  

```
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 時，會將此串流設為 ID 為 Target1 的目標：  

```
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)。