

文档 AWS SDK 示例 GitHub 存储库中还有更多 [S AWS DK 示例](https://github.com/awsdocs/aws-doc-sdk-examples)。

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# EventBridge 使用示例 AWS CLI
<a name="cli_2_eventbridge_code_examples"></a>

以下代码示例向您展示了如何使用with来执行操作和实现常见场景 EventBridge。 AWS Command Line Interface 

*操作*是大型程序的代码摘录，必须在上下文中运行。您可以通过操作了解如何调用单个服务函数，还可以通过函数相关场景的上下文查看操作。

每个示例都包含一个指向完整源代码的链接，您可以从中找到有关如何在上下文中设置和运行代码的说明。

**Topics**
+ [操作](#actions)

## 操作
<a name="actions"></a>

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

以下代码示例演示了如何使用 `delete-rule`。

**AWS CLI**  
**删除 CloudWatch 事件规则**  
此示例删除名为的规则 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_2_topic"></a>

以下代码示例演示了如何使用 `describe-rule`。

**AWS CLI**  
**显示有关 CloudWatch 事件规则的信息**  
此示例显示有关名为 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_2_topic"></a>

以下代码示例演示了如何使用 `disable-rule`。

**AWS CLI**  
**禁用 CloudWatch 事件规则**  
此示例禁用名 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_2_topic"></a>

以下代码示例演示了如何使用 `enable-rule`。

**AWS CLI**  
**启用 CloudWatch 事件规则**  
此示例启用名为的规则 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_2_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_2_topic"></a>

以下代码示例演示了如何使用 `list-rules`。

**AWS CLI**  
**显示所有 CloudWatch 事件规则的列表**  
此示例显示该区域的所有 CloudWatch 事件规则：  

```
aws events list-rules
```
**显示以特定字符串开头 CloudWatch 的事件规则列表。**  
此示例显示该区域中名称以 “Daily” 开头的所有 CloudWatch 事件规则：  

```
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_2_topic"></a>

以下代码示例演示了如何使用 `list-targets-by-rule`。

**AWS CLI**  
**显示 CloudWatch 事件规则的所有目标**  
此示例显示名为 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_2_topic"></a>

以下代码示例演示了如何使用 `put-events`。

**AWS CLI**  
**向 Events 发送自定义 CloudWatch 事件**  
此示例向 Events 发送自定义 CloudWatch 事件。该事件包含在 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_2_topic"></a>

以下代码示例演示了如何使用 `put-rule`。

**AWS CLI**  
**创建 CloudWatch 活动规则**  
该示例创建一条可在协调世界时每天上午 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_2_topic"></a>

以下代码示例演示了如何使用 `put-targets`。

**AWS CLI**  
**为 CloudWatch 事件规则添加目标**  
以下示例添加了一个 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_2_topic"></a>

以下代码示例演示了如何使用 `remove-targets`。

**AWS CLI**  
**移除事件的目标**  
此示例将名为 MyStream 1 的 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_2_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)*中的。