当前位置: 首页 > 知识库问答 >
问题:

AWS API网关-Lambda-内部服务器错误

昌学
2023-03-14

我上传一个图像到s3,通过lambda,和一切工作正常,没有错误,但从API网关的响应是500内部服务器错误。

我按照以下教程配置了我的api网关:使用Amazon API网关集成API的二进制支持。

My lambda接收Base64图像,对其进行解码并成功上载到s3。

这是我的lambda代码:

def upload_image(event, context):
    s3 = boto3.client('s3')
    b64_image = event['base64Image']
    image = base64.b64decode(b64_image)

    try:
        with io.BytesIO(image) as buffer_image:
            buffer_image.seek(0)
            s3.upload_fileobj(buffer_image, 'MY-BUCKET', 'image')

        return {'status': True}

    except ClientError as e:
        return {'status': False, 'error': repr(e)}

这就是我收到的:{“消息”:“内部服务器错误”},状态代码为500。

Obs:我没有使用lambda代理集成。

共有2个答案

诸嘉澍
2023-03-14

这个例子看起来不太适合映射响应部分以支持直通。在这种情况下,将返回更改为:返回{'state': True,'statusCode': 200}可能会起作用。

一般来说,使用ApiGateway-Lambda构建响应时有两条路径。一个是lambda代理(其中lambda函数定义响应),另一个是ApiGateway转换响应并基于映射生成适当的标头/状态的地方。

示例中的路径是针对后者的。

我个人会将:return{'status':True}更改为return{'status':“Success”}并创建一个分别查找单词“Success”和“Error”的正则表达式

我成功地将这篇博文与这项技术结合使用(它还详细描述了这两种方法之间的差异)。一旦一个映射开始工作,您就可以调整它,使其更适合您的实现。

编辑:热点提示这些装饰器非常棒,可以制作python

羊舌墨一
2023-03-14

您需要在响应中返回标题,例如在Python中:

    return {
        "statusCode": 200,
        'headers': { 'Content-Type': 'application/json' },
        "body": json.dumps(body)
    }
 类似资料:
  • 我创建了一个简单的AWS Lambda函数,使用python 3.6添加两个数字。它读取 Lambda函数 JSON主体

  • 我正在使用Lambda和API网关开发几个AWS无服务器应用程序。 有一次,我试图在一个应用程序上执行一个API请求(使用请求python库),该请求来自另一个应用程序中Lambda函数中运行的代码。我得到500服务器错误。从日志中可以看出,API网关后面的Lambda函数根本没有启动。我找不到任何日志可以告诉我发生了什么。 其他详情: API网关受IAM auth保护。 调用lambda有权“执

  • 删除php扩展URL。//.htAccess代码 RewriteEngine on RewiteRule^dashboard$dashboard.php[L] 内部服务器错误服务器遇到内部错误或配置错误,无法完成您的请求。 请与postmaster@localhost的服务器管理员联系,通知他们此错误发生的时间,以及您在此错误发生之前执行的操作。 有关此错误的详细信息可以在服务器错误日志中获得。

  • 我在AWS API网关中有一个REST API,它调用Python Lambda函数并返回一些结果。在大多数情况下,此工作流工作正常,这意味着执行Lambda函数并将结果传递回API,API反过来返回200 OK响应。 然而,我很少从API中得到500个错误代码,而Lambda似乎甚至没有执行。response.reason显示:“内部服务器错误”,没有提供其他信息。 在方法或参数格式方面,对AP

  • 我是新的角度6。我用spring boot开发了一个post服务,当我通过postman测试它时,它工作得很好,但当我用web浏览器测试它时,它给了我这个错误: HttpErrorResponse ;{headers:HttpHeaders,status:500,statusText:“ok”,URL:“http://localhost:8080/api/test/ordermiss”,ok:fa

  • 我用wordpress和woocommerce(www.jescesole.eu)建立了一个网站。由于该网站在德国销售,我不得不在最近几天安装一个附加插件,woocommerce germanized(与polylang一起,以德语和意大利语查看内容),我升级了wp和所有插件,但当客户提交订单时,会出现一条内部服务器错误消息。我阅读了服务器错误日志,并报告了一条很长的错误消息: 周四,13四月20