使用 AWS CLI 的 EventBridge 示例 - AWS Command Line Interface

本文档仅适用于 AWS CLI 版本 1。有关 AWS CLI 版本 2 的相关文档,请参阅版本 2 用户指南

使用 AWS CLI 的 EventBridge 示例

以下代码示例展示了如何通过将 AWS Command Line Interface与 EventBridge 结合使用,来执行操作和实现常见场景。

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

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

主题

操作

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

AWS CLI

删除 CloudWatch Events 规则

以下示例删除了名为 EC2InstanceStateChanges 的规则:

aws events delete-rule --name "EC2InstanceStateChanges"
  • 有关 API 详细信息,请参阅《AWS CLI 命令参考》中的 DeleteRule

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

AWS CLI

显示有关 CloudWatch Events 规则的信息

以下示例显示了有关名为 DailyLambdaFunction 的规则的信息:

aws events describe-rule --name "DailyLambdaFunction"
  • 有关 API 详细信息,请参阅《AWS CLI 命令参考》中的 DescribeRule

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

AWS CLI

禁用 CloudWatch Events 规则

以下示例禁用了名为 DailyLambdaFunction 的规则。该规则未删除:

aws events disable-rule --name "DailyLambdaFunction"
  • 有关 API 详细信息,请参阅《AWS CLI 命令参考》中的 DisableRule

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

AWS CLI

启用 CloudWatch Events 规则

以下示例启用了名为 DailyLambdaFunction 的规则,该规则之前已被禁用:

aws events enable-rule --name "DailyLambdaFunction"
  • 有关 API 详细信息,请参阅《AWS CLI 命令参考》中的 EnableRule

以下代码示例演示了如何使用 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"

以下代码示例演示了如何使用 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

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

AWS CLI

显示 CloudWatch Events 规则的所有目标

以下示例显示了名为 DailyLambdaFunction 的规则的所有目标:

aws events list-targets-by-rule --rule "DailyLambdaFunction"
  • 有关 API 详细信息,请参阅《AWS CLI 命令参考》中的 ListTargetsByRule

以下代码示例演示了如何使用 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

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

AWS CLI

创建 CloudWatch Events 规则

该示例创建一条可在协调世界时每天上午 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

以下代码示例演示了如何使用 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

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

AWS CLI

移除事件的目标

以下示例将名为 MyStream1 的 Amazon Kinesis 流从规则 DailyLambdaFunction 的目标中移除。创建 DailyLambdaFunction 后,这个流曾被设置为 ID 为 Target1 的目标:

aws events remove-targets --rule "DailyLambdaFunction" --ids "Target1"
  • 有关 API 详细信息,请参阅《AWS CLI 命令参考》中的 RemoveTargets

以下代码示例演示了如何使用 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