【发布时间】:2021-03-24 03:17:57
【问题描述】:
在生产中有一个 lambda 函数,但是我需要验证在执行错误时,配置的 cloudwatch 警报将成功进入警报状态。一种选择是更新代码并简单地暂时中断它,但这是不可行的。
寻找可以强制 AWS Lambda 出错而无需修改实际代码的 API 调用。
【问题讨论】:
标签: amazon-web-services aws-lambda amazon-cloudwatch
在生产中有一个 lambda 函数,但是我需要验证在执行错误时,配置的 cloudwatch 警报将成功进入警报状态。一种选择是更新代码并简单地暂时中断它,但这是不可行的。
寻找可以强制 AWS Lambda 出错而无需修改实际代码的 API 调用。
【问题讨论】:
标签: amazon-web-services aws-lambda amazon-cloudwatch
寻找可以强制 AWS Lambda 出错而无需修改实际代码的 API 调用。
这不是这样的电话。但是一些 lambda 错误(特别是运行时错误)可以在不更改源代码的情况下被“强制”。例如,但移除 lambda 权限或更改函数执行超时。
您也可以使用set-alarm-state API 调用手动将您的 CW 警报设置为警报状态。
【讨论】:
正如其他答案中提到的,没有这样的 API。然而,我可以想象有两种方法:
根据您的代码,可能有一种方法可以使用错误的输入数据调用您的 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。
【讨论】: