3 回答
TA贡献1877条经验 获得超6个赞
这是因为 node.js 异步调用。您的函数在异步调用返回之前完成运行。我修复了一些代码行。我希望这对你有帮助。
const getApi= async function() {
return await axios.get(url)
}
const getResponse = async function(){
const data= await getApi()
if (data.status ==200){
return data
}
}
exports.handler = async function() {
return await getResponse().then(res => {
const response = {
statusCode: 200,
body: JSON.stringify(res),
}
return response
}).catch(error => console.error(error))
}
TA贡献1818条经验 获得超7个赞
我建议使用console.log()
整个文件进行调试。默认情况下,您应该能够在 Cloudwatch 中看到对这些控制台日志的响应:)
在此处阅读更多信息:
https://docs.aws.amazon.com/lambda/latest/dg/monitoring-functions-logs.html
TA贡献1802条经验 获得超4个赞
我自己最近遇到了这个问题。解决办法是:
如果您在 AWS 网关中使用 Lambda 作为授权方,则 Lambda 应返回一个包含 principalId、policyDocument 和上下文的 JSON 对象。
上下文是一个映射,您可以在其中添加您自己的自定义变量,例如字符串、数字和布尔值。
JSON 对象的全部内容将返回给网关。查看此文档:https : //docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-lambda-authorizer-output.html
我还有一篇关于如何通过 Cloudformation YAML 文件配置网关的非常详细的 Stackoverflow 帖子:AWS API Gateway with Lambda Authorizer
添加回答
举报