配合使用 AWS Lambda 和 Amazon CloudWatch Events - AWS Lambda

配合使用 AWS Lambda 和 Amazon CloudWatch Events

Amazon CloudWatch 事件可用于响应您的 AWS 资源的状态更改。当您的资源的状态发生变化时,会自动向事件流发送事件。您可以创建规则来匹配流中的选定事件并将它们发送到 AWS Lambda 函数以采取操作。例如,您可以自动调用 AWS 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:rds:us-east-2:123456789012:db:rdz6xmpliljlb1" ], "detail": { "EventCategories": [ "backup" ], "SourceType": "DB_INSTANCE", "SourceArn": "arn:aws:rds:us-east-2:123456789012:db:rdz6xmpliljlb1", "Date": "2020-04-28T07:20:20.112Z", "Message": "Finished DB Instance backup", "SourceIdentifier": "rdz6xmpliljlb1" } }

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

例 CloudWatch Events 消息事件

{ "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:events:us-east-1:123456789012:rule/my-schedule" ] }

配置 CloudWatch Events 以调用函数

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

  2. 选择函数

  3. Designer 下方,选择 Add trigger (添加触发器)

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

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

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

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

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