Aws lambda AWS Lambda无故返回内部服务器错误

Aws lambda AWS Lambda无故返回内部服务器错误,aws-lambda,timeout,Aws Lambda,Timeout,我有一个AWS Lambda函数,当我运行它时,它会导致{“message”:“internalserver Error”}。使用CloudWatch日志和print语句,我可以确认代码执行时没有错误,直到返回为止。这是我的代码: def lambda_处理程序(事件、上下文): 表_name=“” bucket_name=“” session=bot3.session( aws\u访问密钥\u id=“”, aws_secret_access_key=“”, ) 如果事件中的“主体”和事件[“

我有一个AWS Lambda函数,当我运行它时,它会导致
{“message”:“internalserver Error”}
。使用CloudWatch日志和print语句,我可以确认代码执行时没有错误,直到返回为止。这是我的代码:

def lambda_处理程序(事件、上下文):
表_name=“”
bucket_name=“”
session=bot3.session(
aws\u访问密钥\u id=“”,
aws_secret_access_key=“”,
)
如果事件中的“主体”和事件[“主体”]:
req_json=json.load(事件[“body”])
uuids=进程(请求、json、表名、桶名、,
会话(“127.0.0.1”,8000),“站点/”)
打印(“成功”,uuids)#此代码仍然成功执行
返回http_响应(200,“成功”,UUID)
其他:
返回http_响应(400,“无请求主体”)

也没有超时,因为此代码在~10秒内运行,并且我的超时设置为2分钟。我不知道为什么没有得到正确的http响应。如果有人能告诉我原因或知道问题可能是什么,我将不胜感激。

我没有您的
http\u响应方法。但是下面的代码在lambda中工作

import json

def lambda_handler(event, context):

  if "body" in event and event["body"]:
    req_json = json.loads(event["body"])

    print("success")  # this code still executes sucessfully
    return {
        'statusCode': 200,
        'body': json.dumps(req_json)
    }
  else:
    return {
        'statusCode': 400,
        'body': json.dumps({'message': 'No request body'})
    }
我还注意到,您正在将AWS凭据直接添加到lambda代码中。您可以改为使用lambda的IAM角色,并为该角色分配所需的权限。

如果不知道流程函数中的内容,很难说。我发现我使用的API类型(HTTP API)在某种程度上似乎是问题所在。切换到REST“修复”了问题!感谢您提供有关AWS凭据的提示!