我用无服务器创建了一个lambda函数。我用lambda控制台测试了lambda函数,它工作得很好。但是,在转换之前,我得到了endpoint响应体:null和执行失败,原因是配置错误:当我试图为该函数调用APIendpoint时,错误的Lambda代理响应。
org: orgname
app: appname
service: report
provider:
name: aws
runtime: python3.7
stage: ${opt:stage,'dev'}
timeout: 120
role: arn:aws:iam::xxxxxxxx:role/rolexxxx
plugins:
- serverless-python-requirements
functions:
reportgen:
handler: xlsx_generator.main
events:
- http:
path: main
method: get
cors: true
custom:
pythonRequirements:
dockerizePip: true
package:
exclude:
- node_modules/**
- venv/**
def main(event, context):
log.basicConfig(level=log.DEBUG)
if "queryStringParameters" in event.keys() and 'start_date' in event["queryStringParameters"].keys():
if "end_date" in event["queryStringParameters"].keys():
end_date = event["queryStringParameters"]['end_date']
else:
end_date = event["queryStringParameters"]['start_date']
try:
generate(event["queryStringParameters"]['start_date'],
end_date,
event["queryStringParameters"]['output'])
except (ClientError, Exception, RuntimeError) as e:
raise e
else:
body = json.dumps({
"message": "Missing parameter",
"event": event
})
return {
"isBase64Encoded": False,
"statusCode": 400,
"headers": {
"Access-Control-Allow-Origin": '*'
},
"body": body
}
并且调用了查询字符串参数的endpoint:?start_date=2019-11-1&end_date=2019-11-30&output=reporthugree.xlsx
。
我不知道为什么我的函数已经以这里的格式返回了响应,但仍然得到了格式错误的Lambda代理响应。我对这整个AWS的事情是新的,如果有什么不对的,请向我解释。
结果表明,我的处理程序函数(main函数)不包含generate函数的返回值,因此lambda给出了空值作为响应。当集成代理尝试将其转换为API网关响应时,此空响应将导致错误的lambda代理响应。当您激活Lambda代理集成时,请确保您的函数始终根据此返回有效的响应格式。这会节省你的时间。
我发现我的问题有点重复了
我正在尝试使用AWS lambda设置一个hello world示例并通过api网关提供它。我单击了“创建Lambda函数”,它设置了api网关并选择了空白函数选项。我添加了在AWS网关上找到的lambda函数入门指南: 问题是,当我向它发出GET请求时,它会返回502响应{“message”:“Internal server error”}。日志显示“由于配置错误,执行失败:Lambda代理响应
问题内容: 我正在尝试使用AWS Lambda建立一个hello world示例,并通过api网关为其提供服务。我单击了“创建Lambda函数”,这将设置api通道并选择了Blank Function选项。我添加了在AWS网关入门指南中找到的lambda函数: 问题是,当我向它发出GET请求时,它返回了502响应。并且日志显示“由于配置错误,执行失败:Lambda代理响应格式错误”。 问题答案:
我试图用AWS lambda建立一个hello world示例,并通过api网关为其服务。我点击了“创建一个Lambda函数”,它设置了api网关,并选择了空白函数选项。我添加了在AWS网关入门指南上找到的lambda函数: 问题是,当我向它发出GET请求时,它返回502响应。日志上写着“由于配置错误执行失败:Lambda代理响应不正确”。
我试图在aws.lamda-service上的node.js中创建函数,并在函数控制台进行测试,效果良好,但当调用api时,它不能导出到外部,api网关错误“malformed Lambda proxy response”状态错误502 有什么想法吗
我正在使用API网关和AWS Lambda与另一个AWS Lambda函数进行交换。 我应该在初次请求插入数据后发送响应,无论是成功还是失败。我正在使用API网关的特定路由。 结构是这样的: 现在我不断得到502畸形Lambda代理响应,这在我的API测试日志中: 问题是我返回了一个真实的回应。如前所述,我将API网关与lambda API一起使用,这是一个处理API网关路由(如Express)的
我创建了一个简单的lambda函数,具有以下代码。 它将与Amazon API网关连接。使用REST客户机能够获得成功 但是我仍然有200个HTTP状态代码。与这种选择模式相关的实际问题是什么?