1

我正在使用 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 中的另一个方法返回异常时,邮递员错误响应即将到来,但状态码是 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,
        }
4

1 回答 1

0

对不起,我不明白你的代码。您调用了带有返回值的“getMethod”:

返回{“状态代码”:str(200),“正文”:json.dumps(响应),“标题”:标题,}

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

于 2019-08-23T11:19:01.220 回答