本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
教程:将 AWS Lambda 用于计划的事件
在本教程中,您将执行以下操作:
-
使用计划定期检查任何 URL 蓝图创建 Lambda 函数。将 Lambda 函数配置为每分钟运行一次。请注意,如果函数返回错误,Lambda 会将错误指标记录到亚马逊。 CloudWatch
-
根据您的 Lambda 函数的
Errors
指标配置 CloudWatch 警报,以便在向发送错误指标AWS Lambda时向您的 Amazon SNS 主题发布一条消息。 CloudWatch您将订阅 Amazon SNS 主题以接收电子邮件通知。在本教程中,您将执行以下操作来进行此设置:-
创建 Amazon SNS 主题。
-
订阅主题以便在有新消息发布到主题时接收电子邮件通知。
-
在 Amazon 中 CloudWatch,针对您的 Lambda 函数的
Errors
指标设置警报,以便在出现错误时向您的 SNS 主题发布消息。
-
先决条件
本教程假设您对 Lambda 基本操作和 Lambda 控制台有一定了解。如果您还没有了解,请按照 使用控制台创建 Lambda 函数 中的说明创建您的第一个 Lambda 函数。
创建 Lambda 函数
通过以下网址登录 AWS Management Console 并打开 AWS Lambda 控制台:https://console.aws.amazon.com/lambda/
。 -
选择创建函数。
-
选择使用蓝图。
-
打开选择蓝图下拉列表,然后选择计划定期检查任何 URL 蓝图。
-
配置以下设置。
-
函数名称 –
lambda-canary
。 -
角色 – 从 AWS 策略模板创建新角色。
-
Role name(角色名称)–
lambda-eventbridge-role
。 -
Policy templates(策略模板)– 简单微服务权限。
-
Rule(规则)– Create a new rule(创建新规则)。
-
Rule name(规则名称)–
CheckWebsiteScheduledEvent
。 -
Rule description(规则描述)–
CheckWebsiteScheduledEvent trigger
。 -
规则类型 –
Schedule expression
。 -
Schedule expression(计划表达式)–
rate(1 minute)
。 -
环境变量
-
site(站点)–
https://docs.aws.amazon.com/lambda/latest/dg/welcome.html
-
expected(预期)–
What is AWS Lambda?
-
-
-
选择创建函数。
EventBridge (CloudWatch 事件)根据调度表达式每分钟发出一个事件。该事件触发 Lambda 函数,从而验证指定页面上是否显示了预期字符串。有关表达式计划的更多信息,请参阅使用 Rate 或 Cron 来计划表达式。
测试 Lambda 函数
使用 Lambda 控制台所提供的示例事件测试函数。
打开 Lamba 控制台的函数页面
。 -
选择 lambda-canary 函数。
-
选择测试。
-
使用事件模板创建新CloudWatch事件 (cloudwatch-scheduled-event)。
-
选择 Create event (创建事件)。
-
选择 调用。
函数执行的输出将显示在页面顶部。
创建 Amazon SNS 主题并订阅此主题
创建 Amazon Simple Notification Service (Amazon SNS) 主题以在 canary 函数返回错误时接收通知。
要创建主题,请执行以下操作
-
打开 Amazon SNS 控制台
。 -
切换到您创建 Lambda 函数时所在的 AWS 区域。
-
选择 Topics (主题),然后选择 Create topic (创建主题)。
-
使用以下设置创建主题。
-
Type(类型) – Standard(标准)。
-
名称 –
lambda-canary-notifications
。 -
Display name(显示名称)–
Canary
。
-
-
选择创建主题。
-
在lambda-canary-notifications主题页面上,选择创建订阅。
-
使用以下设置创建订阅。
-
Protocol(协议)–
Email
。 -
Endpoint(端点)– 您的电子邮件地址。
-
-
选择创建订阅。
Amazon SNS 将发送来自 Canary <no-reply@sns.amazonaws.com>
的电子邮件,其中反映了主题的友好名称。使用此电子邮件中的链接确认您的地址。
配置警报
在 Amazon 中配置警报 CloudWatch ,监控 Lambda 函数并在函数失败时发送通知。
创建警报
-
切换到您创建 Lambda 函数时所在的 AWS 区域。
-
选择 All alarms(所有警报)。
-
选择 Create Alarm (创建警报)。
-
在 Specify metric and conditions (指定指标和条件) 页面上,选择 Select metric (选择指标)。
-
在 Metrics(指标)搜索框中,输入 lambda-canary Errors(lambda-canary 错误)。
-
选择 Lambda > By Function 1 Name(Lambda > 按函数 1 名称)。
-
选择 lambda-canary Errors(lambda-canary 错误)指标。
-
在 Specify metric and conditions(指定指标和条件)页面的 Statistic(统计数据)下拉菜单中,选择 Sum(总和)。
-
将阈值设置为 Greater/Equal(大于/等于)
1
。 -
在 Configure actions(配置操作)页面上,添加具有以下设置的通知:
-
警报状态触发器 – In alarm(处于警报状态)
-
Send notification to...(发送通知到)–
lambda-canary-notifications
-
-
在 Add name and description(添加名称和描述)页面上,输入以下信息:
-
名称 –
lambda-canary-alarm
-
Description(描述)–
Lambda canary alarm
-
-
选择创建警报。
测试警报
更新函数配置以使函数返回错误,从而触发警报。
触发警报
打开 Lamba 控制台的函数页面
。 -
选择 lambda-canary 函数。
-
向下滚动。在 Environment variables (环境变量) 下,选择 Edit (编辑)。
-
将 expected (预期) 设置为
404
。 -
选择保存。
等待一分钟,然后在电子邮件中查看来自 Amazon SNS 的邮件。
清除资源
除非您想要保留为本教程创建的资源,否则可立即将其删除。通过删除您不再使用的 AWS 资源,可防止您的 AWS 账户产生不必要的费用。
删除 Lambda 函数
-
打开 Lamba 控制台的 Functions(函数)页面
。 -
选择您创建的函数。
-
依次选择操作和删除。
-
在文本输入字段中键入
delete
,然后选择删除。
删除 CloudWatch 警报
-
打开 CloudWatch 控制台的 “所有警报” 页面
。 -
选择您已创建的警报。
-
依次选择 Actions 和 Delete。
-
选择 Delete(删除)。
删除 Amazon SNS 订阅
-
在 Amazon SNS 控制台中打开 Subscription(订阅)页面
。 -
选择您已创建的订阅。
-
选择 Delete(删除),Delete(删除)。
删除 Amazon SNS 主题
-
打开 Amazon SNS 控制台中的 Topics(主题)页面
。 -
选择您已创建的主题。
-
选择 Delete(删除)。
-
在文本输入字段中输入
delete me
。 -
选择删除。