Chr*_*ler 3 invoke amazon-web-services aws-lambda
我有一个AWS Lambda函数,需要~30秒.当我将其连接到API网关时,由于5秒超时,它正在发送504.所以我的easyCron工作失败了,不会再试一次(我只有一个免费的计划)
所以我需要一个API,它发送一个正确的200状态.我的想法:
通过短期lambda调用长期lambda.该策略允许调用.
这是代码
var AWS = require('aws-sdk'),
params = {
FunctionName: 'cctv',
InvocationType: 'RequestResponse',
LogType: 'Tail'
},
lambda;
AWS.config.update({region: 'us-east-1'});
lambda = new AWS.Lambda();
exports.handler = function (event, context) {
'use strict';
lambda.invoke(params, function (err, data) {
if (err) {
console.log(err, err.stack);
}
else {
console.log(data);
}
});
context.succeed('hey cron job, I think my lambda function is not called');
};Run Code Online (Sandbox Code Playgroud)
但我认为,context.succeed()中止了执行lambda.invoke()
你知道如何解决这个问题吗?
这是不正确的
InvocationType: 'RequestResponse'
Run Code Online (Sandbox Code Playgroud)
你应该用
InvocationType: 'Event'
Run Code Online (Sandbox Code Playgroud)
来自http://docs.aws.amazon.com/lambda/latest/dg/API_Invoke.html#API_Invoke_RequestSyntax
默认情况下,Invoke API采用"RequestResponse"调用类型.您可以选择通过将"Event"指定为InvocationType来请求异步执行.
| 归档时间: |
|
| 查看次数: |
1931 次 |
| 最近记录: |