教程:将 Amazon Lambda 用于计划的事件 - Amazon Lambda
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

教程:将 Amazon Lambda 用于计划的事件

在本教程中,您将执行以下操作:

  • 使用计划定期检查任何 URL 蓝图创建 Lambda 函数。将 Lambda 函数配置为每分钟运行一次。请注意,如果函数返回错误,Lambda 会将错误指标记录到亚马逊。 CloudWatch

  • 根据您的 Lambda 函数的Errors指标配置 CloudWatch 警报,以便在向发送错误指标Amazon Lambda时向您的 Amazon SNS 主题发布一条消息。 CloudWatch您将订阅 Amazon SNS 主题以接收电子邮件通知。在本教程中,您将执行以下操作来进行此设置:

    • 创建 Amazon SNS 主题。

    • 订阅主题以便在有新消息发布到主题时接收电子邮件通知。

    • 在 Amazon 中 CloudWatch,针对您的 Lambda 函数的Errors指标设置警报,以便在出现错误时向您的 SNS 主题发布消息。

先决条件

本教程假设您对 Lambda 基本操作和 Lambda 控制台有一定了解。如果您还没有了解,请按照 使用控制台创建 Lambda 函数 中的说明创建您的第一个 Lambda 函数。

创建 Lambda 函数

  1. 通过以下网址登录 Amazon Web Services Management Console 并打开 Amazon Lambda 控制台:https://console.aws.amazon.com/lambda/

  2. 选择创建函数

  3. 选择使用蓝图

  4. 打开选择蓝图下拉列表,然后选择计划定期检查任何 URL 蓝图。

  5. 配置以下设置。

    • 函数名称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?

  6. 选择创建函数

EventBridge (CloudWatch 事件)根据调度表达式每分钟发出一个事件。该事件触发 Lambda 函数,从而验证指定页面上是否显示了预期字符串。有关表达式计划的更多信息,请参阅使用 Rate 或 Cron 来计划表达式

测试 Lambda 函数

使用 Lambda 控制台所提供的示例事件测试函数。

  1. 打开 Lamba 控制台的函数页面

  2. 选择 lambda-canary 函数。

  3. 选择测试

  4. 使用事件模板创建新CloudWatch事件 (cloudwatch-scheduled-event)。

  5. 选择 Create event (创建事件)

  6. 选择  调用

函数执行的输出将显示在页面顶部。

创建 Amazon SNS 主题并订阅此主题

创建 Amazon Simple Notification Service (Amazon SNS) 主题以在 canary 函数返回错误时接收通知。

要创建主题,请执行以下操作
  1. 打开 Amazon SNS 控制台

  2. 切换到您创建 Lambda 函数时所在的 Amazon Web Services 区域。

  3. 选择 Topics (主题),然后选择 Create topic (创建主题)

  4. 使用以下设置创建主题。

    • Type(类型) – Standard(标准)。

    • 名称lambda-canary-notifications

    • Display name(显示名称)– Canary

  5. 选择创建主题

  6. lambda-canary-notifications主题页面上,选择创建订阅

  7. 使用以下设置创建订阅。

    • Protocol(协议)– Email

    • Endpoint(端点)– 您的电子邮件地址。

  8. 选择创建订阅

Amazon SNS 将发送来自 Canary <no-reply@sns.amazonaws.com> 的电子邮件,其中反映了主题的友好名称。使用此电子邮件中的链接确认您的地址。

配置警报

在 Amazon 中配置警报 CloudWatch ,监控 Lambda 函数并在函数失败时发送通知。

创建警报
  1. 打开CloudWatch 控制台

  2. 切换到您创建 Lambda 函数时所在的 Amazon Web Services 区域。

  3. 选择 All alarms(所有警报)。

  4. 选择 Create Alarm (创建警报)

  5. Specify metric and conditions (指定指标和条件) 页面上,选择 Select metric (选择指标)

  6. Metrics(指标)搜索框中,输入 lambda-canary Errors(lambda-canary 错误)。

  7. 选择 Lambda > By Function 1 Name(Lambda > 按函数 1 名称)。

  8. 选择 lambda-canary Errors(lambda-canary 错误)指标。

  9. Specify metric and conditions(指定指标和条件)页面的 Statistic(统计数据)下拉菜单中,选择 Sum(总和)。

  10. 将阈值设置为 Greater/Equal(大于/等于)1

  11. Configure actions(配置操作)页面上,添加具有以下设置的通知:

    • 警报状态触发器 – In alarm(处于警报状态)

    • Send notification to...(发送通知到)– lambda-canary-notifications

  12. Add name and description(添加名称和描述)页面上,输入以下信息:

    • 名称lambda-canary-alarm

    • Description(描述)– Lambda canary alarm

  13. 选择创建警报

测试警报

更新函数配置以使函数返回错误,从而触发警报。

触发警报
  1. 打开 Lamba 控制台的函数页面

  2. 选择 lambda-canary 函数。

  3. 向下滚动。在 Environment variables (环境变量) 下,选择 Edit (编辑)

  4. expected (预期) 设置为 404

  5. 选择保存

等待一分钟,然后在电子邮件中查看来自 Amazon SNS 的邮件。

清除资源

除非您想要保留为本教程创建的资源,否则可立即将其删除。通过删除您不再使用的 Amazon 资源,可防止您的 Amazon 账户产生不必要的费用。

删除 Lambda 函数
  1. 打开 Lamba 控制台的 Functions(函数)页面

  2. 选择您创建的函数。

  3. 依次选择操作删除

  4. 在文本输入字段中键入 delete,然后选择删除

删除 CloudWatch 警报
  1. 打开 CloudWatch 控制台的 “所有警报” 页面

  2. 选择您已创建的警报。

  3. 依次选择 ActionsDelete

  4. 选择 Delete(删除)。

删除 Amazon SNS 订阅
  1. 在 Amazon SNS 控制台中打开 Subscription(订阅)页面

  2. 选择您已创建的订阅。

  3. 选择 Delete(删除),Delete(删除)。

删除 Amazon SNS 主题
  1. 打开 Amazon SNS 控制台中的 Topics(主题)页面

  2. 选择您已创建的主题。

  3. 选择 Delete(删除)。

  4. 在文本输入字段中输入 delete me

  5. 选择删除