【发布时间】:2017-07-07 12:57:40
【问题描述】:
我希望能够使用 mysql 查询的结果开始执行步进函数,但我无法让它工作。
我在 lambda 上使用 AWS-SDK,运行 nodejs 4.3 和 mysql 包。
我使用 AWS-SDK 轻松地开始执行 step-function,并将其包装在一个函数中:
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的connection.query的回调函数中调用同样的startExecution()不起作用:
connection.query('SELECT * FROM `books` WHERE `author` = "David"', function (error, results, fields) {
startExecution(); //doesn't work :(
});
使用 console.log() 跟踪代码显示以下行:
stepfunctions.startExecution(params, function(err, data) {
好像被跳过了。
我们将非常感谢您的帮助!
非常感谢..
【问题讨论】:
-
你能把整个函数贴出来吗?可能与 Lambda 在运行
startExecution()之前退出或其他一些节点回调计时问题有关。
标签: mysql node.js aws-lambda aws-sdk-nodejs aws-step-functions