将 Amazon Lambda 与 Amazon CloudWatch Events 结合使用 - Amazon Lambda
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

将 Amazon Lambda 与 Amazon CloudWatch Events 结合使用

Amazon CloudWatch 事件可用于响应您的 Amazon 资源的状态更改。当您的资源的状态发生变化时,会自动向事件流发送事件。您可以创建规则来匹配流中的选定事件并将它们发送到 Amazon Lambda 函数以采取操作。例如,您可以自动调用 Amazon Lambda 函数以记录 EC2 实例AutoScaling 组的状态。

CloudWatch Events 使用从源代码包装事件的事件文档异步调用函数。以下示例显示了一个源自 Amazon Relational Database Service 中的数据库快照的事件。

例 CloudWatch Events event

{ "version": "0", "id": "fe8d3c65-xmpl-c5c3-2c87-81584709a377", "detail-type": "RDS DB Instance Event", "source": "aws.rds", "account": "123456789012", "time": "2020-04-28T07:20:20Z", "region": "us-east-2", "resources": [ "arn:aws-cn:rds:us-east-2:123456789012:db:rdz6xmpliljlb1" ], "detail": { "EventCategories": [ "backup" ], "SourceType": "DB_INSTANCE", "SourceArn": "arn:aws-cn:rds:us-east-2:123456789012:db:rdz6xmpliljlb1", "Date": "2020-04-28T07:20:20.112Z", "Message": "Finished DB Instance backup", "SourceIdentifier": "rdz6xmpliljlb1" } }

您还可以创建一个 Lambda 函数并指示 Amazon Lambda 定期调用此函数。您可以指定一个固定速率(例如,每小时或每 15 分钟执行调用 Lambda 函数),也可以指定一个 Cron 表达式。

例 CloudWatch Events 消息事件

{ "version": "0", "account": "123456789012", "region": "us-east-2", "detail": {}, "detail-type": "Scheduled Event", "source": "aws.events", "time": "2019-03-01T01:23:45Z", "id": "cdc73f9d-aea9-11e3-9d5a-835b769c0d9c", "resources": [ "arn:aws-cn:events:us-east-2:123456789012:rule/my-schedule" ] }

配置 CloudWatch Events 以调用函数

  1. 打开 Lambda 控制台的“函数”页面

  2. 选择函数

  3. Function overview (函数概览) 下,选择 Add trigger (添加触发器)

  4. 将触发器类型设置为 EventBridge(CloudWatch Events)

  5. 对于规则,选择创建新规则

  6. 配置其余选项,然后选择 Add (添加)

有关表达式计划的更多信息,请参阅使用 Rate 或 Cron 来计划表达式

每个 Amazon 账户可以有最多 100 个 CloudWatch Events – 计划源类型的唯一事件源。其中每个事件源可以是最多五种 Lambda 函数的事件源。也就是说,您的 Amazon 账户最多可以有 500 种能够按计划执行的 Lambda 函数。