AWS Lambda
开发人员指南
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

配合使用 AWS Lambda 和 Amazon CloudWatch Events

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

您可使用规则目标定义在 Amazon CloudWatch 事件中保留事件源映射。有关更多信息,请参阅 Amazon CloudWatch Events API 参考 中的 PutTargets 操作。

您还可以创建一个 Lambda 函数并指示 AWS Lambda 定期执行此函数。您可以指定一个固定速率(例如,每小时或每 15 分钟执行一次 Lambda 函数),也可以指定一个 Cron 表达式。有关表达式计划的更多信息,请参阅使用 Rate 或 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" ] }

此功能仅在您使用 AWS Lambda 控制台或 AWS CLI 创建 Lambda 函数时可用。要使用 AWS CLI 配置它,请参阅使用 AWS CLI 按计划运行 AWS Lambda 函数。控制台提供 CloudWatch 事件作为事件源。创建 Lambda 函数时,选择此事件源并指定时间间隔。

如果您对函数的权限做出任何手动更改,可能需要将计划事件访问权限重新应用于您的函数。您可以使用下面的 CLI 命令执行这项操作。

$ aws lambda add-permission --function-name my-function\ --action 'lambda:InvokeFunction' --principal events.amazonaws.com --statement-id events-access \ --source-arn arn:aws:events:*:123456789012:rule/*

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

控制台还提供了使用 CloudWatch Events - 计划源类型的蓝图 (lambda-canary)。利用此蓝图,您可以创建示例 Lambda 函数并测试此功能。蓝图提供的示例代码将检查特定网页和网页上的特定文本字符串是否存在。如果未找到网页或文本字符串,则 Lambda 函数会引发错误。