AWS API Lambda代理集成中的返回错误响应

时间:2019-08-23 04:22:45

标签: python amazon-web-services aws-lambda aws-api-gateway

我正在使用aws lambda代理集成。

如果成功表示200个响应,而错误表示500个错误是正确的,那么我会响应API。

        {
    try:
          return {
                "statusCode": str(200),
                "body": json.dumps("Hello"),
                "headers": headers,
            }

    except Exception as e:
         return {
                "statusCode": str(500),
                "body": json.dumps("Error"),
                "headers": headers,
            }

}

但是当我尝试从邮差错误响应中的lambda内部的另一个方法返回异常时,却出现了statuscode 200响应。下面是代码。

    def getMethod(val):
   try:
        a= val
        return {
            "statusCode": str(200),
            "body": json.dumps("Success"),
            "headers": headers,
        }
    except Exception as e:
         return {
            "statusCode": str(500),
            "body": json.dumps("Error in getMethod"),
            "headers": headers,
        }

handler request(event,context):
    try:
      response = getMethod(
      return {
            "statusCode": str(200),
            "body": json.dumps(response),
            "headers": headers,
        }

    except Exception as e:
      return {
            "statusCode": str(500),
            "body": json.dumps("Error"),
            "headers": headers,
        }

1 个答案:

答案 0 :(得分:0)

对不起,我不理解您的代码。您已经使用返回值调用了“ getMethod”:

返回{             “ statusCode”:str(200),             “正文”:json.dumps(response),             “标题”:标题,         }

其中已指定“响应”,它是getMethod的返回值。您最有可能收到200响应,因为getMethod评估返回的是try部分而不是except部分。