ken*_*ken 3 amazon-web-services aws-lambda
在我的本地mocha测试中,以下处理函数工作正常.但是,当我上传到AWS(使用无服务器框架)时,它会超时(除非您没有提供uid参数,然后它会立即正确响应).
特别奇怪的是,在不到3秒(超时设置为5秒)的情况下,作业完成,甚至输出"事后"日志消息,但它以某种方式调用回调并且没有完成Lambda函数
这是cloudwatch日志:
] 1
这是处理函数:
export const handler = (event: IRequestInput, context: IContext, cb: IGatewayCallback) => {
console.log('EVENT:\n', JSON.stringify(event, null, 2));
const uid = _.get(event, 'queryStringParameters.uid', undefined);
if(!uid) {
cb(null, {
statusCode: 412,
body: 'no User ID was provided by frontend'
});
return;
}
oauth.getRequestToken()
.then(token => {
console.log('Token is:\n', JSON.stringify(token, null, 2));
console.log('User ID: ', uid);
token.uid = uid;
return Promise.resolve(token);
})
.then((token) => {
console.log('URL: ', token.url);
cb(null, {
statusCode: 200,
body: token.url
});
console.log('post-facto');
})
.catch((err: PromiseError) => {
console.log('Problem in getting promise token: ', err);
cb(err.message);
});
};
Run Code Online (Sandbox Code Playgroud)
添加以下内容作为处理函数的第一行:
context.callbackWaitsForEmptyEventLoop = false
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3309 次 |
| 最近记录: |