Skip to content

Latest commit

 

History

History
111 lines (80 loc) · 2.76 KB

README.md

File metadata and controls

111 lines (80 loc) · 2.76 KB

Serverless Step Function Sync

This Serverless plugin syncs step functions from your local machine to speed up your development cycles.

Installation

First, add Serverless Step Function Sync to your project:

npm install serverless-step-function-sync --save-dev

Then inside your project's serverless.yml file add following entry to the plugins section: serverless-step-function-sync. If there is no plugin section you will need to add it to the file.

Note that the "plugin" section for serverless-step-function-sync must be at root level on serverless.yml.

It should look something like this:

plugins:
  - serverless-step-function-sync

Usage and command line options

In your project root run:

sls deploy step-function --name [name of the step function] or serverless deploy step-function --name [name of the step function].

or

sls deploy step-function --id [id of the step function] or serverless deploy step-function --id [id of the step function].

Example

DynamoDb Table name

If you want to resolve TableName like so

  Get test:
    Type: Task
    Resource: arn:aws:states:::aws-sdk:dynamodb:query
    Parameters:
      TableName: !Ref TestTable
      KeyConditionExpression: id = :id
      ExpressionAttributeValues:
        ":id":
          S: "1234"
      ConsistentRead: false
    ResultPath: $.test
    Next: Pass

you need to set an output in cloudformation:

Resources:
  TestTable:
    Type: AWS::DynamoDB::Table
    Properties:
      TableName: TestTable${opt:stage, 'dev'}
      BillingMode: PAY_PER_REQUEST
      AttributeDefinitions:
        - AttributeName: id
          AttributeType: S
      KeySchema:
        - AttributeName: id
          KeyType: HASH

Outputs:
  TestTableName:
    Value: !Ref TestTable

State Machine Arn

If you want to resolve the stateMachineArn, that works simply through declaration as seen here:

  RefTest:
    Type: Task
    Resource: arn:aws:states:::states:startExecution
    Parameters:
      StateMachineArn: !Ref StepMachineOne
      Input:
        key1: value3
        key2: value2
    Next: Get test

Lambda Arn

If you want to resolve the lambda arns, that works simply through declaration as seen here:

  Function2:
    Type: Task
    Parameters:
      AWS_STEP_FUNCTIONS_STARTED_BY_EXECUTION_NAME.$: $$.Execution.Name
      AWS_STEP_FUNCTIONS_STARTED.$: $$.Execution.Name
    Resource: !GetAtt dummy.Arn
    Next: RefTest

Credits and inspiration

This plugin is based on the work of notanmay and jappurohit041 at the awesome serverless-step-functions.

License

MIT