1

私はAWS Lambda Python 3.6関数をAPIゲートウェイのAPIでラムダプロキシとして使用するように書いています。ラムダを書くとき、私はヘルパー関数を呼び出しています。ここでエラーがあれば、例外が発生します。 API GatewayはLambdaからの応答に "body"、 "statusCode"、 "headers"を期待しており、Pythonで例外が発生した場合、これらのキーは提供されません。AWSラムダプロキシ発生例外

ラムダプロキシを使用して私のカスタム例外を念頭に置くことができるのではないかと思うので、私が着任しているすべての呼び出し先から抜け出し、呼び出し側。基本的には、例外を発生させ、ステータスコード、ヘッダー、本文を提供し、エラーを認識したAPIゲートウェイでラムダ関数から完全に戻りたいと考えています。あなたが使用できるNode.jsの中

答えて

3

ラムダプロキシの統合を使用している場合は、成功したかどうかにかかわらず、適切な応答を返す責任があります。

これを行うには、例外をキャッチします。

def handler(event, context): 
    try: 
     return { 
      'statusCode': 200, 
      'body': json.dumps({ 
       'hello': 'world' 
      }) 
     } 
    except BadRequestError: 
     return { 
      'statusCode': 400, 
      'body': json.dumps({ 
       'error': 'Bad Request Error' 
      }) 
     } 
    except: 
     return { 
      'statusCode': 500, 
      'body': json.dumps({ 
       'error': 'Internal Server Error' 
      }) 
     } 
+0

ありがとう、私はこれが当てはまると考えました。私はちょうどtryを除いて基本的に私のコードを包んでいましたが、私はそれを使って作業しています。 –

0

RESPONSE_NO_SUCCESSはこのようなものです
callback(null, RESPONSE_NO_SUCCESS); 

import json 
return { 
    statusCode: 200, 
    body: json.dumps({YOUR_ERROR_HERE}) 
}; 

あなたはあなただけのコールバックがPythonでどのように機能するかを調べる必要があるしたいので、これは動作するはずです

関連する問題