Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Node.js helpers to access the Amazon SWF API

License

NotificationsYou must be signed in to change notification settings

ericabouaf/aws-swf

Repository files navigation

NPM versionBuild StatusCoverage StatusCode Climate

aws-swf provides high-level classes to build Amazon Simple Workflows using Node.js.

It is built on top of the official Node.jsaws-sdk for low-level API calls. You can find the fullAPI reference here.

Requirements

Installation

npm install aws-swf

Setting AWS Credentials

Cf.http://docs.aws.amazon.com/AWSJavaScriptSDK/guide/node-configuring.html#Setting_AWS_Credentials

Usage

Step 1 : Register Domains, ActivityTypes, WorkflowTypes

The AWS SDK is sufficient to register SWF objects, since those are just direct API calls.(You can also register them through theAWS console.)

You can run the following example to register the objects used in the following examples :

Example to register "test-domain", "simple-activity" and "simple-workflow"

Step 2 : Create Activity Workers

AnActivityPoller will wait for new tasks from SWF, and emit anactivityTask event.The event receives an instance ofActivityTask, which makes it easier to send the response to SWF.

This example starts an Activity Worker which completes immediatly.

Step 3 : Create Workflow Deciders

TheDecider class will wait for new decision tasks from SWF, and emit adecisionTask event.The event receives an instance ofDecisionTask, composed of :

  • anEventList instance, to query the state of the workflow
  • aDecisionResponse instance, to prepare the decider response with decisions

Simple decider worker example : decision worker, which schedules an activity task, then stop the workflow.

Step 4 : Start a workflow

To start a workflow, call thestart method on aWorkflow instance. This call will return aWorkflowExecution instance, which you can use to signal or terminate a workflow.

AWS Options

Sometimes you may want to configure the AWS SDK instance. A possible reason isto set a specific region foraws-swf. Because Node.js allows multipleinstances of the same package for maximal compatibility among libraries, youwould need to do something similar to:

varAWS=require('./node_modules/aws-swf/node_modules/aws-sdk/lib/aws');

Instead, you simlpy need to do:

varAWS=require('aws-swf').AWS;

An example use case would be:

varAWS=require('aws-swf').AWS;AWS.config=newAWS.Config({region:process.env.AWS_REGION||'us-west-2',apiVersions:{swf:'2012-01-25'}});

API Documentation

The API documentation is available online athttp://neyric.github.io/aws-swf/apidoc/

To rebuild the documentation, install jsdoc, then :

jsdoc lib/*.js README.md -d apidoc

Test

Tests can be executed with Mocha :

$ mocha

To get the coverage, run :

$ ./node_modules/.bin/istanbul cover ./node_modules/mocha/bin/_mocha

Then open coverage/lcov-report/index.html

To send the coverage to coveralls, I run locally (I don't know why travis-ci after-script doesn't work...):

$ NODE_ENV=test ./node_modules/.bin/istanbul cover ./node_modules/mocha/bin/_mocha --report lcovonly -- -R spec && cat ./coverage/lcov.info | COVERALLS_REPO_TOKEN=xxxx ./node_modules/coveralls/bin/coveralls.js && rm -rf ./coverage

License

MIT License

See also

About

Node.js helpers to access the Amazon SWF API

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors9


[8]ページ先頭

©2009-2025 Movatter.jp