AWS Lambda和Gateway API集成,返回状态码500

Gau*_*mar 5 lambda amazon-web-services aws-lambda aws-api-gateway

首先,我是整个AWS本身的新手。我正在尝试使用AWS Lambda和API Gateway解决问题。

  1. 我创建了一个python lambda函数。它需要一些数据并string根据某些条件返回a 。如下所示:
def lambda_function(event, context):
    if event['some_property']:
        return "SUCCESS: Operation performed successfully."
    else
        return "ERROR: Operation failed."
Run Code Online (Sandbox Code Playgroud)
  1. 在触发器下,我设置了一个网关API。

  2. 在针对所创建资源的API网关服务中,集成请求被配置为传递给lambda函数。我已经测试过lambda函数,它可以正确返回值。

  3. 但是,如果我卷曲发出发布请求的API,它将返回服务器错误。消息是这样的。

{“消息”:“内部服务器错误”}

  1. 我试着玩。如果我从函数返回一个空的json并创建一个Content Type为的正文映射模板,并为其application/json使用一个空的模型模板,那么它可以正常工作。

我猜想,我在“集成响应”部分中缺少某些内容。200如果操作成功执行,我想要的是返回状态代码以及成功消息。

ljm*_*cic 2

statusCode执行 Lambda 函数后需要传递。如果您不传递它,API 网关将502 Bad Gateway默认触发。

message = {
   'message': 'Execution started successfully!'
}
return {
    'statusCode': 200,
    'headers': {'Content-Type': 'application/json'},
    'body': json.dumps(message)
}
Run Code Online (Sandbox Code Playgroud)