【问题标题】:Return Error response in AWS API Lambda Proxy IntegrationAWS API Lambda 代理集成中的返回错误响应
【发布时间】:2019-08-23 04:22:45
【问题描述】:

我正在使用 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,
        }

【问题讨论】:

  • 你能显示你的网关配置吗,可能和那里的东西有关

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


【解决方案1】:

很抱歉,我没看懂您的代码。您已经调用了带有返回值的“getMethod”:

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

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

【讨论】:

    猜你喜欢
    • 2017-10-04
    • 1970-01-01
    • 2017-09-28
    • 2017-04-07
    • 2021-04-22
    • 2018-06-03
    • 2021-01-08
    相关资源
    最近更新 更多