簡體   English   中英

如何觸發 AWS Lambda function 錯誤來測試 Cloudwatch 警報

[英]How to trigger AWS Lambda function error to test Cloudwatch Alarm

Have a lambda function in production, however I need to verify that upon an execution error, the configured cloudwatch alarm will successfully go to Alarm state. 一種選擇是更新代碼並簡單地暫時中斷它,但這是不可行的。

尋找可以強制 AWS Lambda 出錯而無需修改實際代碼的 API 調用。

尋找可以強制 AWS Lambda 出錯而無需修改實際代碼的 API 調用。

這不是這樣的電話。 但是一些 lambda 錯誤(特別是運行時錯誤)可以在不更改源代碼的情況下“強制”。 例如,但刪除 lambda 權限或更改 function 執行超時。

您還可以使用set-alarm-state API 調用手動將 CW 警報設置為警報 state。

正如其他答案中提到的,沒有這樣的 API。 然而,我可以想象有兩種方法可以做到這一點:

  1. 使用 AWS 控制台或 AWS CLI 調用帶有錯誤輸入數據的 Lambda(參見下面的示例)。
  2. 以這種方式操作 Lambda 的配置會導致錯誤。 例如,將 memory 設置得太低,使用太短的超時或刪除所需的權限。

根據您的代碼,可能有一種方法可以使用錯誤的輸入數據調用 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。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM