Exemplo n.º 1
0
function start_execution(
  sm_arn,
  version
) {
  const sf = new AWS.StepFunctions();
  return sf.startExecution({
    stateMachineArn: sm_arn,
    input: JSON.stringify({version: version}),
    name: version+'-build-'+crypto.randomBytes(8).toString('hex'),
  }).promise();
}
Exemplo n.º 2
0
exports.handler = (event, context, callback) => {
  const sf = new AWS.StepFunctions();

  event.stepFunctionExecutionStates = {};
  event.allStepFunctionExecutionsFinished = true;

  promise.all(
    event.stepFunctionExecutions.map(arn => {
      return sf.describeExecution({
        executionArn: arn
      }).promise();
    })
  ).then(results => {
    results.forEach(function(r) {
      const arn = r.executionArn;
      const state = r.status;

      event.stepFunctionExecutionStates[arn] = state;
      if (state === 'RUNNING') {
        event.allStepFunctionExecutionsFinished = false;
      }
    });
    callback(null, event);
  }).done();
};
Exemplo n.º 3
0
// kick off processing next CSV file
function invokeLambda(bucket, key, nextFileNum, lastFileNum, arn, retries) {
    // figure out if there's a next file to process
    if (nextFileNum && arn) {
      const stepfunctions = new AWS.StepFunctions()
      const params = {
        stateMachineArn: arn,
        input: JSON.stringify({ bucket, key, currentFileNum: nextFileNum, lastFileNum, arn, retries}),
        name: `ingest_${nextFileNum}_${Date.now()}`
      }
      stepfunctions.startExecution(params, function(err, data) {
        if (err) {
          console.log(err, err.stack)
        } else {
          console.log(`launched ${JSON.stringify(params)}`)
        }
      }) 
    }
}
Exemplo n.º 4
0
exports.handler = (event, context, callback) => {
  const sm_arn = 'arn:aws:states:us-west-2:223121549624:stateMachine:hhvm-build';
  const version = event.version;
  if (version === undefined) {
    callback('version must be defined', event);
  }

  const sf = new AWS.StepFunctions();
  sf.startExecution({
    stateMachineArn: sm_arn,
    input: JSON.stringify(event),
    name: version+'-build-'+crypto.randomBytes(8).toString('hex'),
  }, function(err, data) {
    if (err) {
      callback(err, null);
      return;
    }
    event.stepFunctionExecutions = [data.executionArn];
    callback(null, event);
  });
};
Exemplo n.º 5
0
 event.stepFunctionExecutions.map(arn => {
   return sf.describeExecution({
     executionArn: arn
   }).promise();
 })