發表文章

目前顯示的是 3月, 2016的文章

如何正確處理 AWS API Gateway 的 Lambda Error Status

圖片
翻譯自原文 Error handling in AWS API Gateway with Lambda 這篇文章會介紹如何設置 AWS API Gateway 正確處理 Lambda 返回的 HTTP 錯誤狀態碼。 更新:2016.03.12 claudia 可以自動化解決這個問題,詳細可以參考 這篇 文章。 本文假設讀者已經知道如何利用 AWS API Gateway 和 Lambda 建立 REST API,詳細可參考 Create API Gateway API for Lambda Functions 。 假設你的 Lambda function 錯誤處理如下: console.log('I am a AWS Lambda function'); exports.handler = function(event, context) { // 一般使用 context.fail 來返回 Lambda function 錯誤 context.fail(JSON.stringify({status:'fail', reason:'some reason', foo:'bar'})); }; 但是 API Gateway 返回的結果會是 HTTP 200 : HTTP/1.1 200 OK ... { "errorMessage": "{\"status\":\"fail\",\"reason\":\"some reason\",\"foo\":\"bar\"}" } 我們希望的結果是: HTTP Status 400 Bad request 只顯示 errorMessage 的 JSON 值 1. 新增 HTTP Status 400 Method Response 前往 API Gateway Console 進入 Method Execution 進入 Method Response 點選 Add Response 輸入 HTTP Status 400 點選