我希望能够从MySQL查询的结果开始启动逐步功能,但我无法使其正常工作。
我正在使用 aws-sdk on lambda 运行 nodejs 4.3 和 mysql package 。>
我很容易地使用AWS-SDK开始执行步骤功能,然后将其包装在功能中:
function startExecution(){
var AWS = require('aws-sdk');
var stepfunctions = new AWS.StepFunctions();
var params = {
stateMachineArn: 'arn:aws:states:us-east-1:453687599700:stateMachine:Temp',
input: '{"OrderID":266}',
name: '00002'
};
stepfunctions.startExecution(params, function(err, data) {
if (err) console.log(err, err.stack); // an error occurred
else console.log(data); // successful response
});
}
调用 startExecution()
exports.handler = (event, context, callback) => {
工作完美。
但是,在MySQL连接的回调函数中调用相同的 startExecution() 使用console.log()跟踪代码显示该行: 似乎被跳过了。 您的帮助将不胜感激! 非常感谢.. connection.query('SELECT * FROM `books` WHERE `author` = "David"', function (error, results, fields) {
startExecution(); //doesn't work :(
});
stepfunctions.startExecution(params, function(err, data) {
可能在startExecution
完成之前您的lambda完成。
改用此语法:
const executeResult = await stepfunctions.startExecution(params).promise()
console.log('executeResult: ', executeResult)