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

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

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

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

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

    • 创建一个 Amazon SNS 主题。

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

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

先决条件

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

创建 Lambda 函数

  1. 通过以下网址登录 Amazon Web Services Management Console并打开 Amazon Lambda 控制台 (https://console.amazonaws.cn/lambda/)。

  2. 选择 Create function (创建函数)

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

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

  5. 配置以下设置。

    • 名称lambda-canary

    • 角色从 Amazon 策略模板创建新角色

    • 角色名称 (角色名称)lambda-apigateway-role

    • 策略模板简单微服务权限

    • 规则Create a new rule (创建新规则)

    • 规则名称CheckWebsiteScheduledEvent

    • 规则描述CheckWebsiteScheduledEvent trigger

    • 计划表达式rate(1 minute)

    • 已启用 – True(已选中)。

    • 环境变量

      • site(站点)– https://docs.amazonaws.cn/lambda/latest/dg/welcome.html

      • expected(预期)– What is Amazon Lambda?

  6. 选择 Create function

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

测试 Lambda 函数

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

  1. 打开 Lambda 控制台的“函数”页面

  2. 选择 lambda-canary 函数。

  3. 选择 Test (测试)

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

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

  6. 选择调用

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

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

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

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

  1. 打开 Amazon SNS 控制台

  2. 选择 Create topic

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

    • 名称lambda-canary-notifications

    • 显示名称Canary

  4. 选择 Create subscription

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

    • 协议Email

    • 终端节点 – 您的电子邮件地址。

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. 打开 Lambda 控制台的“函数”页面

  2. 选择 lambda-canary 函数。

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

  4. expected (预期) 设置为 404

  5. 选择 Save

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

清除资源

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

删除 Lambda 函数

  1. 打开 Lambda 控制台的“函数”页面

  2. 选择您创建的函数。

  3. 依次选择 ActionsDelete

  4. 选择删除

删除 CloudWatch 警报

  1. 打开 CloudWatch 控制台的“警报”页面

  2. 选择您创建的警报。

  3. 依次选择 ActionsDelete

  4. 选择 Delete

要删除 Amazon SNS 订阅

  1. 打开 Amazon SNS 控制台的“订阅”页面

  2. 选择您创建的订阅。

  3. 依次选择删除删除

删除 Amazon SNS 主题

  1. 打开 Amazon SNS 控制台的“主题”页

  2. 选择您创建的主题。

  3. 选择 Delete

  4. 在文本框中输入 delete me

  5. 选择 Delete