教程:将 Amazon Lambda 用于计划的事件
在本教程中,您将执行以下操作:
-
使用计划定期检查任何 URL 蓝图创建 Lambda 函数。将 Lambda 函数配置为每分钟运行一次。请注意,如果函数返回错误,Lambda 会将错误指标记录到 Amazon CloudWatch。
-
将 Lambda 函数的
Errors
指标的 CloudWatch 警报配置为在 Amazon Lambda 向 CloudWatch 发出错误指标时将消息发布到 Amazon SNS 主题。您将订阅 Amazon SNS 主题以接收电子邮件通知。在本教程中,您将执行以下操作来进行此设置:-
创建 Amazon SNS 主题。
-
订阅主题以便在有新消息发布到主题时接收电子邮件通知。
-
在 Amazon CloudWatch 中,将 Lambda 函数的
Errors
指标的警报设置为在出错时将消息发布到 SNS 主题。
-
先决条件
本教程假设您对 Lambda 基本操作和 Lambda 控制台有一定了解。如果您还没有了解,请按照 使用控制台创建 Lambda 函数 中的说明创建您的第一个 Lambda 函数。
创建 Lambda 函数
登录到 Amazon Web Services Management Console,然后通过以下网址打开 Amazon Lambda 控制台:https://console.aws.amazon.com/lambda/
。 -
选择 Create function(创建函数)。
-
选择 Use a blueprint (使用蓝图)。
-
打开选择蓝图下拉列表,然后选择安排定期检查任何 URL 蓝图。
-
配置以下设置。
-
函数名称 –
lambda-canary
。 -
角色 – 从 Amazon 策略模板创建新角色。
-
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 Amazon Lambda?
-
-
-
选择 Create function(创建函数)。
EventBridge (CloudWatch Events) 根据计划表达式每分钟发出一个事件。该事件触发 Lambda 函数,从而验证指定页面上是否显示了预期字符串。有关表达式计划的更多信息,请参阅使用 Rate 或 Cron 来计划表达式。
测试 Lambda 函数
使用 Lambda 控制台所提供的示例事件测试函数。
打开 Lamba 控制台的函数页面
。 -
选择 lambda-canary 函数。
-
选择 Test(测试)。
-
使用 CloudWatch 事件模板(cloudwatch-scheduled-event)创建新事件。
-
选择 Create event (创建事件)。
-
选择调用。
函数执行的输出将显示在页面顶部。
创建 Amazon SNS 主题并订阅此主题
创建 Amazon Simple Notification Service (Amazon SNS) 主题以在 canary 函数返回错误时接收通知。
要创建主题,请执行以下操作
-
打开 Amazon SNS 控制台
。 -
切换到您创建 Lambda 函数时所在的 Amazon Web Services 区域。
-
选择 Topics (主题),然后选择 Create topic (创建主题)。
-
使用以下设置创建主题。
-
Type(类型) – Standard(标准)。
-
名称 –
lambda-canary-notifications
. -
Display name(显示名称)–
Canary
。
-
-
选择 Create topic(创建主题)。
-
在 lambda-canary-notifications 主题页面上,选择 Create subscription(创建订阅)。
-
使用以下设置创建订阅。
-
Protocol(协议)–
Email
。 -
Endpoint(端点)– 您的电子邮件地址。
-
-
选择 Create subscription(创建订阅)。
Amazon SNS 将发送来自 Canary <no-reply@sns.amazonaws.com>
的电子邮件,其中反映了主题的友好名称。使用此电子邮件中的链接确认您的地址。
配置警报
在 Amazon CloudWatch 中配置用来监控 Lambda 函数并在此函数失败时发送通知的警报。
创建警报
-
打开 CloudWatch 控制台
。 -
切换到您创建 Lambda 函数时所在的 Amazon Web Services 区域。
-
选择 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
-
-
选择Create alarm(创建警报)。
测试警报
更新函数配置以使函数返回错误,从而触发警报。
触发警报
打开 Lamba 控制台的函数页面
。 -
选择 lambda-canary 函数。
-
向下滚动。在 Environment variables (环境变量) 下,选择 Edit (编辑)。
-
将 expected (预期) 设置为
404
。 -
选择 Save(保存)。
等待一分钟,然后在电子邮件中查看来自 Amazon SNS 的邮件。
清除资源
除非您想要保留为本教程创建的资源,否则可立即将其删除。通过删除您不再使用的 Amazon 资源,可防止您的 Amazon 账户产生不必要的费用。
删除 Lambda 函数
-
打开 Lamba 控制台的函数页面
。 -
选择您创建的函数。
-
依次选择 Actions(操作)和 Delete(删除)。
-
在文本输入字段中键入
delete
,然后选择 Delete(删除)。
删除 CloudWatch 警报
-
打开 CloudWatch 控制台的 All alarms page
(所有警报页面)。 -
选择您已创建的警报。
-
依次选择 Actions 和 Delete。
-
选择 Delete(删除)。
删除 Amazon SNS 订阅
-
在 Amazon SNS 控制台中打开 Subscription(订阅)页面
。 -
选择您已创建的订阅。
-
选择 Delete(删除),Delete(删除)。
删除 Amazon SNS 主题
-
打开 Amazon SNS 控制台中的 Topics(主题)页面
。 -
选择您已创建的主题。
-
选择 Delete (删除)。
-
在文本输入字段中输入
delete me
。 -
选择 Delete。