測試API Gateway
在lambda中添加API gateway觸發器后,我們就可以通過call API的方式來觸發lambda函數,如果我們不帶任何參數進去,可以直接在瀏覽器call API。
(如何創建lambda和API gateway在AWS documention中都有詳細教程。)
比如:
https://*******.execute-api.us-west-2.amazonaws.com/yourtest/yourmethod
直接在瀏覽器call這個網址,會觸發lambda函數,如果你的lambda是初始狀態,會返回‘Hello from lambda’。這說明API觸發lambda成功了。
但是如果我們的lambda有實際功能,需要帶參數進去,直接在瀏覽器call API會失敗,比如:
https://*******.execute-api.us-west-2.amazonaws.com/yourtest/yourmethod?key=value
這時我們需要使用高級的測試工具比如curl和postman,我使用的是postman,AWS documention中提供了curl的使用方法,可以去參考一下。當然也可以直接在AWS API gateway頁面里直接測試
選擇自己的請求類型和參數就可以了。
使用postman的話更加簡單,把API地址復制過去,然后設置參數點擊send就可以了。
"message": "Internal server error"
出現這個問題就是API打不通了,可能是網絡問題,或者是地址錯了。當然還有一個原因,就是我們的lambda函數里沒有對傳過來的參數處理不正確。
比如你的code是這樣的 value = event['queryStringParameters']['key'], 但是你傳進去的是'Fuck' = 'value'。所以你的code拿不到這個'key',會報錯,但是API Gateway這里不會返回你lambda的報錯,它不管的,直接扔一個502就完事兒了,所以你就看見了"message": "Internal server error"。
所以出現這個問題的時候可以確認一下是不是code沒寫好有bug,多寫點try,控制一下輸入的參數就可以了。
希望對大家有幫助!