Ich habe 2 Lambda-Funktionen in AWS.AWS synchrone Lambda zu Lambda-Aufruf mit Nodejs
Die Funktion A (FA) versucht, die Funktion B (FB) synchron aufzurufen. Wenn FA versucht, FB aufzurufen, wird FA Timeout. FA erreicht niemals die Callback-Methode innerhalb von FA, und der FB hat keine Cloudwatch-Protokolle, um zu sagen, dass er aufgerufen wurde.
Ich habe beide Funktionen eingerichtet, um innerhalb der gleichen Region, die gleiche Rolle, und keine VPC (wie ich die VPC lesen kann Probleme verursachen, aber habe versucht, unter den gleichen VPC und Subnetz-Einstellungen als auch ohne Glück
)Die Benutzerrolle hat die folgenden Berechtigungen zugeordnet
- AWSLambdaExecute
- AWSLambdaBasicExecutionRole
- AWSLambdaRole
Funciton A
exports.handler = (event, context, callback) => {
var aws = require('aws-sdk');
var lambda = new aws.Lambda({
region: 'ap-southeast-2'
});
lambda.invoke({
FunctionName: 'async-receiver-test'
}, function(error, data) {
console.log('inside return function');
if (error) {
context.done('error', error);
}
if(data.Payload){
context.succeed(data.Payload);
}
});
};
Funktion B - (name => Asynchron-Empfänger-Test)
exports.handler = (event, context, callback) => {
var eventItem = {id : 53148, name : "Let's get testing"};
callback(null, eventItem);
};
Lauf eine Funktion innerhalb der Konsole
REPORT RequestId zurück: 2db82333-f9c3- 11e6-8160-93bd7ddf5b19 Dauer: 3000,43 ms Abgelaufene Dauer: 3000 ms Speichergröße: 128 MB Maximal belegter Speicher: 25 MB
2017-02-23T12: 25: 39.363Z 2db82333-f9c3-11e6-8160-93bd7d df5b19 Task-Zeitüberschreitung nach 3,00 Sekunden
Lauffunktion B in der Konsole (Dauer: 14,36 ms)
{ "id": 53148, "name": "Lassen Sie uns testen" }
Es ist also kein Problem mit FB von dem, was ich sagen kann, aber aus irgendeinem Grund gibt es keine Antwort, wenn von FA aufgerufen.