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

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

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

  • 使用 lambda-canary 蓝图创建 Lambda 函数。将 Lambda 函数配置为每分钟运行一次。请注意,如果函数返回错误,Lambda 会将错误指标记录到 Amazon CloudWatch。

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

    • 创建 Amazon SNS 主题。

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

    • 在 Amazon CloudWatch 中,将 Lambda 函数的 Errors 指标的警报设置为在出错时将消息发布到 SNS 主题。

Prerequisites

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

创建 Lambda 函数

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

  2. 选择创建函数

  3. 选择 Use a blueprint (使用蓝图)

  4. 在搜索栏中输入 canary。选择 lambda-canary 蓝图,然后选择 Configure (配置)

  5. 配置以下设置。

    • 名称lambda-canary.

    • Role(角色)– 从Amazon策略模板创建新角色

    • Role name(角色名称)– lambda-apigateway-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 Events) 根据计划表达式每分钟发出一个事件。该事件触发 Lambda 函数,从而验证指定页面上是否显示了预期字符串。有关表达式计划的更多信息,请参阅使用 Rate 或 Cron 来计划表达式

测试 Lambda 函数

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

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

  2. 选择 lambda-canary 函数。

  3. 选择 Test (测试)

  4. 使用 CloudWatch 事件模板创建新事件。

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

  6. 选择调用

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

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

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

要创建主题,请执行以下操作

  1. 打开 Amazon SNS 控制台

  2. 选择 Create topic (创建主题)

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

    • 名称lambda-canary-notifications.

    • Display name(显示名称)– Canary

  4. 选择 Create subscription

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

    • Protocol(协议)– Email

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

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

配置警报

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

创建警报

  1. 打开 CloudWatch 控制台

  2. 选择 Alarms

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

  4. 选择 Alarms

  5. 使用以下设置创建警报。

    • Metrics(指标)– lambda-canary 错误

      搜索 lambda canary errors 以查找指标。

    • 统计数据 – Sum

      从预览图上方的下拉菜单中选择统计数据。

    • 名称lambda-canary-alarm.

    • Description(描述)– Lambda canary alarm

    • 阈值 – 当错误为 >= 1

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

测试警报

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

触发警报

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

  2. 选择 lambda-canary 函数。

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

  4. expected (预期) 设置为 404

  5. 选择保存

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

清除 资源

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

删除 Lambda 函数

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

  2. 选择您创建的函数。

  3. 选择 Actions (操作),然后选择 Delete (删除)

  4. 选择 Delete

删除 CloudWatch 警报

  1. 在 CloudWatch 控制台中打开 Alarms(警报)页面

  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. 选择 Delete