【问题标题】:How to trigger AWS Lambda function error to test Cloudwatch Alarm如何触发 AWS Lambda 函数错误以测试 Cloudwatch 警报
【发布时间】:2021-03-24 03:17:57
【问题描述】:

在生产中有一个 lambda 函数,但是我需要验证在执行错误时,配置的 cloudwatch 警报将成功进入警报状态。一种选择是更新代码并简单地暂时中断它,但这是不可行的。

寻找可以强制 AWS Lambda 出错而无需修改实际代码的 API 调用。

【问题讨论】:

    标签: amazon-web-services aws-lambda amazon-cloudwatch


    【解决方案1】:

    寻找可以强制 AWS Lambda 出错而无需修改实际代码的 API 调用。

    这不是这样的电话。但是一些 lambda 错误(特别是运行时错误)可以在不更改源代码的情况下被“强制”。例如,但移除 lambda 权限或更改函数执行超时。

    您也可以使用set-alarm-state API 调用手动将您的 CW 警报设置为警报状态。

    【讨论】:

      【解决方案2】:

      正如其他答案中提到的,没有这样的 API。然而,我可以想象有两种方法:

      1. 使用 AWS 控制台或 AWS CLI 调用带有错误输入数据的 Lambda(参见下面的示例)。
      2. 以这种方式操作 Lambda 的配置会导致错误。例如,将内存设置得太低、使用太短的超时或删除所需的权限。

      根据您的代码,可能有一种方法可以使用错误的输入数据调用您的 Lambda(请参阅上面的 1.)。想象一下用于派对策划服务的 Go Lambda,如下所示:

      func handleRequest(event MyEvent) error {
          if event.NumberOfGuests < 2 {
              return errors.New("there should be at least 2 guests")
          }
          return nil
      }
      
      func main() {
          lambda.Start(handleRequest)
      }
      

      您现在可以使用如下负载调用您的 Lambda:

      {
        "NumberOfGuests": 1
      }
      

      这将强制上面的 Lambda 返回错误。

      显然,这很大程度上取决于您的 Lambda 代码,但如果您有这样的代码路径,您需要做的就是使用将运行此代码路径的输入数据调用 Lambda。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2021-10-03
        • 2020-11-12
        • 1970-01-01
        • 2020-04-20
        • 2018-02-26
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多