1

Ich schreibe eine AWS Lambda Python 3.6-Funktion, um als Lambda-Proxy für meine API in API Gateway zu verwenden. Wenn ich das Lambda schreibe, rufe ich eine Hilfsfunktion auf, wo, wenn es einen Fehler gibt, eine Ausnahme ausgelöst wird. API Gateway gefällt das nicht, da es "body", "statusCode" und "headers" in der Antwort von Lambda erwartet, und wenn eine Ausnahme in Python ausgelöst wird, werden diese Schlüssel nicht bereitgestellt.AWS Lambda Proxy, die Ausnahmen auslöst

Ich frage mich, ob es möglich ist, meine benutzerdefinierte Ausnahme mit Lambda-Proxy im Hinterkopf zu erhöhen, so dass ich aus was auch immer aufgerufen werden kann und flüssig aus dem Programm zurückkehren, ohne auf Fehler von der Angerufenen zu überprüfen der Anrufer. Im Grunde möchte ich eine Ausnahme auslösen, meinen Statuscode, meine Header und meinen Body bereitstellen und vollständig von der Lambda-Funktion mit dem API-Gateway zurückkehren, das den Fehler erkennt.

Antwort

3

Wenn Sie die Lambda Proxy-Integration verwenden, sind Sie dafür verantwortlich, eine korrekte Antwort zurückzugeben, unabhängig davon, ob es sich um einen Erfolg oder eine Ausnahme handelt.

Sie können dies tun, indem Sie die Ausnahme abfangen.

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

Danke, ich dachte, das könnte der Fall sein. Ich habe nur meinen Code in einen Versuch verpackt, außer, und ich arbeite damit. –

0

in node.js können Sie:

callback(null, RESPONSE_NO_SUCCESS); 

wo RESPONSE_NO_SUCCESS ist wie folgt:

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

Dies sollte funktionieren, wie Sie wollen Sie müssen nur sehen, wie der Rückruf in Python funktioniert

Verwandte Themen