serverless-operations / serverless-step-functions Goto Github PK
View Code? Open in Web Editor NEWAWS Step Functions plugin for Serverless Framework ⚡️
License: Other
AWS Step Functions plugin for Serverless Framework ⚡️
License: Other
Hi,
I have followed the tutorial in the end of the README and I'm trying to get the stateMachine's arn. However, there seems a error:
Template format error: Unresolved resource dependencies
[MyStateMachine] in the Resources block of the template
Could you help me to figure it out? I just followed the same code as the tutorial.
$ sls invoke stepf -t hello_automation
Serverless: Start function hello_automation...
Execution Result -----------------------------------------
{ ...
status: 'FAILED',
input: '{}' }
Error Log ------------------------------------------------
{ cause: 'some error' }
$ echo $?
0
現状このように、成功・失敗にかかわらず
終了ステータスコードが 0 になっていると思います。
Unix 的な伝統にもとづき、失敗した時は 0 以外で終了するような機能があるとよいな、と思います。
I dont' have any activities and as a result my servlerless file looks sort of like:
stepFunctions:
stateMachines:
hello: ...
As a result I am getting this error:
Serverless: Packaging service...
Serverless Error ---------------------------------------
activities property is not an array Please check the
README for more info.
Simply changing my file to this fixes it:
stepFunctions:
activities: []
stateMachines:
hello: ...
But it seems like activities should default to an empty array automatically instead of null in this case.
It would be great to enable us to pick the name of the execution role:
e.g.
stepFunctions:
role: arn:aws:iam:::role/InsertYourFavoriteRoleNameHere
stateMachines:
myStateMachine:
Comment: 'A state machine'
...```
hey!
I was searching how to use another types
like catch
, wait
and parallel
with this plugin sadly with any good information until found this one https://github.com/horike37/serverless-step-functions/blob/6d3ebb3acc149e975c77c4db41fb4a95d014b7fb/README.md#sample-statemachines-setting-in-serverlessyml . Actually I fixed my issues following those examples.
I think those examples are pretty useful to have at hand.
What do you think to keep it into the master README
of this plugin?
Thanks!
It looks like AWS as well as serverless now support AWS::Events::Rule to trigger Step Functions.
I'm very excited to be able to use a custom name! I just gave it a go and am getting an error.
The CloudFormation template is invalid: Template format error: Unresolved resource dependencies [Hellostepfunc1StepFunctionsStateMachine] in the Resources block of the template
It appears that the step function is getting created with correct name, but the resource is being referenced using the old, compiled name.
Here is an example of the serverless.yml that will cause the issue:
service: step-functions
custom:
accountId: xxxxxxxx
plugins:
- serverless-step-functions
provider:
name: aws
runtime: nodejs6.10
functions:
hellofunc:
handler: handler.hello
stepFunctions:
stateMachines:
hellostepfunc1:
events:
- http:
path: api/track
method: post
name: myStateMachine
definition:
Comment: "A Hello World example of the Amazon States Language using an AWS Lambda Function"
StartAt: HelloWorld1
States:
HelloWorld1:
Type: Task
Resource: arn:aws:lambda:${opt:region}:${self:custom.accountId}:function:${self:service}-${opt:stage}-hello
End: true
Thanks!
Using Version 1.0.3
It looks like there are some bugs when creating IAM Role for Step Functions. This plugin try to create IAM Role when it can't find statesExecutionRole-us-east-1
role, but always fail because of some reasons.
this.iamRoleName
is not defined.When createRole
is invoked, this.iamRoleName
variable is not set, so failing with this error message.
$ sls deploy stepf -t hellostepfunc -v
Serverless: Start to deploy hellostepfunc step function...
Serverless Error ---------------------------------------
Missing required key 'RoleName' in params
Get Support --------------------------------------------
Docs: docs.serverless.com
Bugs: github.com/serverless/serverless/issues
Your Environment Information -----------------------------
OS: darwin
Node Version: 7.1.0
Serverless Version: 1.4.0
Also assumeRolePolicyDocument
, passed to createRole
as a param, is not valid policy document. It's value must be assume role policy, not policy for invoking Lambda function. Here is a error message with passing string to this.iamRoleName
.
$ sls deploy stepf -t hellostepfunc -v
Serverless: Start to deploy hellostepfunc step function...
Serverless Error ---------------------------------------
Has prohibited field Resource
Get Support --------------------------------------------
Docs: docs.serverless.com
Bugs: github.com/serverless/serverless/issues
Your Environment Information -----------------------------
OS: darwin
Node Version: 7.1.0
Serverless Version: 1.4.0
I think it's JSON object should be looks like this.
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"Service": "states.<region-defined-in-provider>.amazonaws.com"
},
"Action": "sts:AssumeRole"
}
]
}
And I don't know how to implement, but you have to define poliicy for invoking Lambda function somewhere in code.
Thanks for very useful plugin!
I'm updating to v1.0.0
and I hit an error where its trying to, presumably, update step functions in an existing stack that I have previously deployed but the step functions don't yet exist in that stack.
Type Error ---------------------------------------------
Cannot read property 'forEach' of undefined
For debugging logs, run again after setting the "SLS_DEBUG=*" environment variable.
Stack Trace --------------------------------------------
TypeError: Cannot read property 'forEach' of undefined
at _.forEach (/Users/justin/code/input-system/node_modules/serverless-step-functions/lib/index.js:140:29)
at arrayEach (/Users/justin/code/input-system/node_modules/lodash/lodash.js:537:11)
at Function.forEach (/Users/justin/code/input-system/node_modules/lodash/lodash.js:9359:14)
at ServerlessStepFunctions.display (/Users/justin/code/input-system/node_modules/serverless-step-functions/lib/index.js:138:7)
at runCallback (timers.js:637:20)
at tryOnImmediate (timers.js:610:5)
at processImmediate [as _immediateCallback] (timers.js:582:5)
From previous event:
at PluginManager.invoke (/Users/justin/code/input-system/node_modules/serverless/lib/classes/PluginManager.js:210:22)
at PluginManager.run (/Users/justin/code/input-system/node_modules/serverless/lib/classes/PluginManager.js:225:17)
at Serverless.run (/Users/justin/code/input-system/node_modules/serverless/lib/Serverless.js:97:31)
at serverless.init.then (/Users/justin/code/input-system/node_modules/serverless/bin/serverless:23:50)
Variables replaced. So something like this dosent work:
stepFunctions:
hellostepfunc:
Comment: "A Hello World example of the Amazon States Language using an AWS External Lambda Function"
StartAt: HelloWorld
States:
HelloWorld:
Type: Task
Resource: arn:aws:lambda:${self:provider.region}:${self:custom.accountid}:function:external_hello_lambda_function
End: true
hey guys!
I'm getting an error with the following data using the plugin after start the state machine
{"error":"States.Runtime","cause":"An error occurred while scheduling the state 'CreatePhotoDocument'. The provided ARN 'create' is invalid."}
This is part of my YML file
provider:
iamRoleStatements:
- Effect: Allow
Action:
- states:*
Resource: "*"
functions:
create:
handler: handler.create
resize:
handler: handler.resize
stepFunctions:
stateMachines:
photoResizeWatermark:
events:
- http:
path: ''
method: POST
cors: true
definition:
StartAt: CreatePhotoDocument
States:
CreatePhotoDocument:
Type: Task
Resource: create
Next: ResizeThumbAndPreview
ResizeThumbAndPreview:
Type: Task
Resource: resize
End: true
could you give me a hand on this please?
Thanks
Hi everyone.
We discussed about including the step functions feature into Serverless Core for a while.
However, We decided to postpone that finally. The reason for that we should decide how to manage a plovider specific feature(Serverless is multi-provider support)
See the detail: serverless/serverless#3024
Therefore I will update the plugin to v1.0 and out of beta, based feedback I got.
Here is specification for v1.0. If you have any ideas, please comment here!
provider:
name: aws
runtime: nodejs4.3
functions:
hellofunc:
handler: handler.hello
stepFunctions:
stateMachines:
myStateMachine1:
role: arn:aws:iam:::role/InsertYourFavoriteRoleNameHere #Optional, you can chose the existing IAM Role
events: #Here is events for stepfunctions. You can define http, schedule and cloudwatchEvent.
- http:
method: GET
path: executeMyStateMachine
- schedule: rate(2 hours)
- cloudwatchEvent:
event:
source:
- "aws.ec2"
detail-type:
- "EC2 Instance State-change Notification"
detail:
state:
- pending
definition: #Required. Here is the Amazon States Language definition.
Comment: "A Hello World example of the Amazon States Language using an AWS Lambda Function"
StartAt: HelloWorld1
States:
HelloWorld1:
Type: Task
Resource: [lambda name | activity name | lambda ARN | activity ARN | Fn::GetAtt (lambda) | Fn::Ref (activity) | Fn::ImportValue]
End: true
activities: #Here is Task activites
- myTask
Include this in sls deploy
without adding new commands.
Add sls invoke --stepfunction <statemachin name>
option. -sf
is as short version.
Hi,
Would be great if we could start a step function execution using the name defined in the serverless.yml file instead of the ARN.
Thank you.
I am receiving the following error:
sls deploy stepf --state stepFuncSteps -v
Serverless: Start to deploy stepFuncSteps step function...
Type Error ---------------------------------------------
that.sdk[service] is not a constructor
For debugging logs, run again after setting the "SLS_DEBUG=*" environment variable.
Stack Trace --------------------------------------------
TypeError: that.sdk[service] is not a constructor
at persistentRequest (/usr/local/lib/node_modules/serverless/lib/plugins/aws/provider/awsProvider.js:149:26)
at doCall (/usr/local/lib/node_modules/serverless/lib/plugins/aws/provider/awsProvider.js:134:9)
at BbPromise (/usr/local/lib/node_modules/serverless/lib/plugins/aws/provider/awsProvider.js:145:14)
at Promise._execute (/usr/local/lib/node_modules/serverless/node_modules/bluebird/js/release/debuggability.js:299:9)
at Promise._resolveFromExecutor (/usr/local/lib/node_modules/serverless/node_modules/bluebird/js/release/promise.js:481:18)
at new Promise (/usr/local/lib/node_modules/serverless/node_modules/bluebird/js/release/promise.js:77:14)
at persistentRequest (/usr/local/lib/node_modules/serverless/lib/plugins/aws/provider/awsProvider.js:132:38)
at AwsProvider.request (/usr/local/lib/node_modules/serverless/lib/plugins/aws/provider/awsProvider.js:148:12)
at ServerlessStepFunctions.deleteStateMachine (/Users/marc/dev/message-step-functions/node_modules/serverless-step-functions/index.js:307:26)
at ServerlessStepFunctions.tryCatcher (/Users/marc/dev/message-step-functions/node_modules/bluebird/js/release/util.js:16:23)
at Promise._settlePromiseFromHandler (/Users/marc/dev/message-step-functions/node_modules/bluebird/js/release/promise.js:510:31)
at Promise._settlePromise (/Users/marc/dev/message-step-functions/node_modules/bluebird/js/release/promise.js:567:18)
at Promise._settlePromise0 (/Users/marc/dev/message-step-functions/node_modules/bluebird/js/release/promise.js:612:10)
at Promise._settlePromises (/Users/marc/dev/message-step-functions/node_modules/bluebird/js/release/promise.js:691:18)
at Async._drainQueue (/Users/marc/dev/message-step-functions/node_modules/bluebird/js/release/async.js:133:16)
at Async._drainQueues (/Users/marc/dev/message-step-functions/node_modules/bluebird/js/release/async.js:143:10)
at Immediate.Async.drainQueues (/Users/marc/dev/message-step-functions/node_modules/bluebird/js/release/async.js:17:14)
at runCallback (timers.js:637:20)
at tryOnImmediate (timers.js:610:5)
at processImmediate [as _immediateCallback] (timers.js:582:5)
Get Support --------------------------------------------
Docs: docs.serverless.com
Bugs: github.com/serverless/serverless/issues
Please report this error. We think it might be a bug.
Your Environment Information -----------------------------
OS: darwin
Node Version: 6.9.2
Serverless Version: 1.3.0
Example serverless file:
service: example
plugins:
- serverless-step-functions # 1.0
stepFunctions:
stateMachines:
foo:
definition: ...
Expected
The generated lambda should be named: example-justin-foo
Actual
The generated lambda is FooStepFunctionsStateMachine-2C1XDD2NCZCR
Is there any way to control the name so I can have what it was before? Specifically for my usecases it must have the stage in it, it must start with the service name and it cannot have randomness in the name.
Great plugin! I noticed one problem. I have this in serverless.yml:
provider:
stage: dev
region: eu-west-1
profile: xxx
When I run sls deploy stepf, the state machine itself is deployed to eu-west-1, but the Lambda ARNs point to us-east-1 so they don't work and execution fails.
It works correctly when I manually specify sls deploy stepf -r eu-west-1
.
I have multiple stages deployed to my account and currently this:
stepFunctions:
stateMachines:
Example: ...
Will create a StateMachine like this:
ExampleStepFunctionsStateMachine-QWUYMJP6O0QH
The problem is that I have maybe half a dozen stages in a single account and I cannot tell the difference between them now. I would have 6 ExampleStepFunctionStateMachine-*
state machines and there is no way to distinguish which is staging and which is prod for example.
What would be really nice is just if the name of the created state machine also had the stage in it, for example:
ExampleProdStepFunctionsStateMachine-QWUYMJP6O0QH
ExampleStagStepFunctionsStateMachine-IOUME4NGKVE2
etc.
When I try to use a parallel task the Resource's aren't being resolved within the Parallel task's Branches key.
Example serverless configuration
stepFunctions:
createOrderStepFunc:
Comment: "Step function that creates a new order"
StartAt: FirstTask
States:
FirstTask:
Type: Task
Resource: firstTaskFunc
Next: GetReports
GetReports:
Type: Parallel
End: true
Branches:
-
StartAt: GetReport1
States:
GetReport1:
Type: Task
Resource: getReport1Func
End: true
-
StartAt: GetReport2
States:
GetReport2:
Type: Task
Resource: getReport2Func
End: true
When this step function gets deployed to AWS, the following code is generated:
{
"Comment": "Step function that creates a new order",
"StartAt": "FirstTask",
"States": {
"FirstTask": {
"Type": "Task",
"Resource": "arn:aws:lambda:us-west-2:<id>:function:dev-firstTaskFunc",
"Next": "GetReports"
},
"GetReports": {
"Type": "Parallel",
"End": true,
"Branches": [{
"StartAt": "GetReport1",
"States": {
"GetReport1": {
"Type": "Task",
"Resource": "getReport1Func",
"End": true
}
}
}, {
"StartAt": "GetReport2",
"States": {
"GetReport2": {
"Type": "Task",
"Resource": "getReport2Func",
"End": true
}
}
}]
}
}
}
This step function does not work correctly, as the Resource entry within the nested States tag needs to be resolved for it to work.
It would be cool to be able to create new tasks and reference them from the workflow
Maybe something like this:
tasks
MyTask:
name: my_task_custom_name_${self:provider.stage}
Hi,
using
[email protected]
[email protected]
found a problem while deploying a state machine
IamRoleStateMachineExecution Invalid principal in policy: "SERVICE":"states.${opt:region, self:custom.defaultRegion}.amazonaws.com"
I'm a noob at nodejs but I managed to fix it doing in the serverless-step-functions/lib/deploy/stepFunctions/compileIamRole.js
file :
- iamRoleStateMachineExecutionTemplate.replace('[region]', this.region)
+ iamRoleStateMachineExecutionTemplate.replace('[region]', this.options.region)
please see the attached patch
local_history.patch.txt
sorry for not submitting PR, but I'm not sure if the fix is right :)
Regards and keep up with this good work!
Roberto
When I deploy "myproject" with Serverless, Lambda functions are prefixed with the service name and suffixed by stage, so they are called "myproject-myfunc-dev" etc.
Perhaps serverless-step-functions should also do the same, so that state machines are called "myproject-mymachine-dev" instead of just "mymachine-dev"? Otherwise there will be conflicts.
It would be really good to have the ability to start execution of a statemachine by calling a url.
https://docs.aws.amazon.com/step-functions/latest/dg/tutorial-api-gateway.html
Suggestion for how it could look in serverless.yml
stepFunctions:
stateMachines:
myStateMachine:
events:
- http:
method: GET
path: executeMyStateMachine
sls invoke stepf --path input.json
The Cloudwatch schedule events are not being created when deploying. Manual creation works. (aka seems its an allowed action)
stepFunctions:
stateMachines:
myMachine:
events:
- schedule: rate(5 minutes)
definition:
StartAt: MyStart
States:
MyStart:
Type: Task
Resource: "arn:aws:lambda:${opt:region}:${self:custom.accountId}:function:${self:service}-${opt:stage}-myFunction"
End: true
When i upgrade to 1.0.3/1.0.4, the plugin has stopped generating the step function. The definition hasn't changed, find here an extract :
stepFunctions:
stateMachines:
fullIndex:
name: myStateMachine
role: arn:aws:iam::${self:custom.${opt:stage}.accountId}:role/service-role/StatesExecutionRole-${opt:region}
events:
- http:
path: /admin/trigger-full-index
method: GET
definition:
Comment: ""
StartAt: FullIndex
States:
FullIndex:
Type: Task
Resource: arn:aws:lambda:${opt:region}:${self:custom.${opt:stage}.accountId}:function:service-${opt:stage}-FullIndex
Next: DeleteIndexes
DeleteIndexes:
Type: Task
Resource: arn:aws:lambda:${opt:region}:${self:custom.${opt:stage}.accountId}:function:service-${opt:stage}-DeleteIndexes
End: true
Have you an idea ?
How to see the logs ?
Currently this plugin replaces a state machine when deploying a change. This could be problematic for state machines that are under heavy load as it won't delete till all executions have been completed, while this also blocks any future executions till it has been deleted.
What do you think about implementing a way of versioning state machines for example, append a version to the name (.e.g myservice-dev-mystatemachine-v1)?
using version 0.2.0
sls deploy stepf --state <stepfunctionname>
Serverless: Start to deploy registerFlow step function...
Type Error ---------------------------------------------
that.sdk[service] is not a constructor
For debugging logs, run again after setting the "SLS_DEBUG=*" environment variable.
Get Support --------------------------------------------
Docs: docs.serverless.com
Bugs: github.com/serverless/serverless/issues
Please report this error. We think it might be a bug.
Your Environment Information -----------------------------
OS: darwin
Node Version: 6.2.1
Serverless Version: 1.3.0
Step Functions is supported by cloudformation.
This could be part of the stack so we could use cross stack references for example.
https://aws.amazon.com/about-aws/whats-new/2017/02/aws-cloudformation-adds-support-for-aws-step-functions/
Hi, I have a project, which has 7 steps (functions) with a shared node_modules
directory.
What is the recommended way of packaging this, do you create a separate package.json for each function and deploy this individually and use the ARNs or put all functions as sun-folders with shared node_modules?
Hi I'm trying to get a simple Step Function to be mapped with http endpoint
stepFunctions:
stateMachines:
Issue2FAToken:
events:
- http:
path: 2fa/step
method: GET
definition:
Comment: "Issuing 2FA token to user via SMS"
StartAt: CreateToken
States:
CreateToken:
Type: Task
Resource: createToken
Next: SendToken
SendToken:
Type: Task
Resource: sendToken
End: true
I do get the following error. Ive checked the syntax against the examples in but cant figure out whats wrong
ServerlessError: Invalid State Machine Definition: 'SCHEMA_VALIDATION_FAILED at , SCHEMA_VALIDATION_FAILED at , SCHEMA_VALIDATION_FAILED at '
at provider.request.then.catch (/---/two-factor-authentication/node_modules/serverless-step-functions/lib/stateMachine.js:86:13)
From previous event:
at ServerlessStepFunctions.createStateMachine (/---/two-factor-authentication/node_modules/serverless-step-functions/lib/stateMachine.js:79:11)
at BbPromise.map (/---/two-factor-authentication/node_modules/serverless-step-functions/lib/stateMachine.js:97:36)
at runCallback (timers.js:649:20)
at tryOnImmediate (timers.js:622:5)
at processImmediate [as _immediateCallback] (timers.js:594:5)
Appreciate any help that I could get to get this working. Thanks
How can I create choice states?
I'm using this way:
States:
Task1:
Type: Task
Resource: arn:aws:lambda:...
Next: ChoiceState
ChoiceState:
Type: Choice
Choices:
- Variable: $.var
NumericEquals: 0
Next: Task2
- Variable: $.var
NumericEquals: 1
End: true
Task2:
Type: Task
Resource: arn:aws:lambda:...
End: true
Nice work you're doing here. You probably already know this but FYI:
$ sls --version
1.12.1
$ SLS_DEBUG=* sls deploy
Serverless: WARNING: Plugin ServerlessStepFunctions uses deprecated hook deploy:initialize
Serverless: WARNING: Plugin ServerlessStepFunctions uses deprecated hook deploy:compileFunctions
Serverless: WARNING: Plugin ServerlessStepFunctions uses deprecated hook deploy:compileEvents
Serverless: Packaging service...
Does anyone have a way to access the provisioned name of a state machine?
The situation I'm considering is where we modify a state machine and re-deploy. A new state machine is created with a new postfix. We have an API function that creates a new execution that needs access to the state machine name in order to create the execution. When there are multiple state machines names [machine_name]-XXXXX with different postfix hashes we can't identify the new state machine in order to create a new execution.
Note also that the old state machine is in 'deleting' state and we can't create new executions for that either.
Do we need to create two projects, one provisioning the state machines and one provisioning everything else and using the Cloud Formation ability to reference outputs across stacks? (haven't done this before).
I set a custom name "ProcessImage-s3" to my step function.
Now it turns out the created function is actually named "ProcessImageDashs3".
I noticed this because I tried refererncing the step function using ${self:resources.Outputs.processImageStepFunction.Value}
and I got the following error:
The CloudFormation template is invalid: Template format error: Unresolved resource dependencies [ProcessImage-s3] in the Resources block of the template
Since the 0.4.0 version i get the error
activities statement does not exists in serverless.yml.
The library works if i put something in activity option.
I've checked the code and it seems that the library now throws an error if it cant find an activity, but shouldn't i be able to deploy only step functions if i want to.
640a5ec#diff-72242882ddade11baa09603dc7d5c027R84
As titled, sls --help
shows:
$ sls --help
...
invoke stepf .................. Remove Step functions
...
remove stepf .................. Remove Step functions
...
...
invoke: {
commands: {
stepf: {
usage: 'Remove Step functions',
...
Sorry to very nitpicking.
Other parts of the serverless.yml
file can be configured to use the Fn::Join
syntax to pull out the ARN for a resource. Can the plugin support the following syntax?
Resource:
Fn::Join:
- ":"
- - arn
- aws
- lambda
- Ref: AWS::Region
- Ref: AWS::AccountId
- function
- ${self:service}-${opt:stage}-myFunction
do integration test when pushing master branch and release new version.
Here is test patterns
I was playing around with serverless-step-functions and I did not find a way to configure "choice" as part of the workflow.
To accomplish something like below.
"CheckInventory": {
"Type" : "Choice",
"Choices": [
{
"Variable": "$.inventoryExists",
"BooleanEquals": true,
"Next": "ProcessOrder"
},
{
"Variable": "$.inventoryExists",
"BooleanEquals": false,
"Next": "DeclineOrderBranch"
}
]
}
I've noticed that I can only name my states certain things. Several characters are excluded. I would appreciate not having to name my States in CamelCasingBecauseItIsntFun.
If there is a way you can change how we have to structure the yml in a different way so we can use spaces between words, it would be appreciated.
BTW, thanks for the fix for not requiring a state name to be passed.
I have been trying to upgrade our latest project to use serverless v1.11.0
with serverless-step-functions (SSF) v1.0.2
from v0.4.0
. If I try to upgrade SSF to v1.0.2
/latest it no longer shows the command serverless deploy stepf
.
Here is the output of running serverless
Commands
* Serverless documentation: http://docs.serverless.com
* You can run commands with "serverless" or the shortcut "sls"
* Pass "--help" after any <command> for contextual help
config credentials ............ Configures a new provider profile for the Serverless Framework
create ........................ Create new Serverless service
install ....................... Install a Serverless service from GitHub
deploy ........................ Deploy a Serverless service
deploy function ............... Deploy a single function from the service
deploy list ................... List deployed version of your Serverless Service
invoke ........................ Invoke a deployed function
invoke local .................. Invoke function locally
invoke stepf .................. Invoke Step functions
info .......................... Display information about the service
logs .......................... Output the logs of a deployed function
metrics ....................... Show metrics for a specific function
remove ........................ Remove Serverless service and all resources
rollback ...................... Rollback the Serverless service to a specific deployment
slstats ....................... Enable or disable stats
Plugins
AwsCompileAlexaSkillEvents, AwsCompileApigEvents, AwsCompileCloudWatchEventEvents, AwsCompileCloudWatchLogEvents, AwsCompileFunctions, AwsCompileIoTEvents,
AwsCompileS3Events, AwsCompileSNSEvents, AwsCompileScheduledEvents, AwsCompileStreamEvents, AwsConfigCredentials, AwsDeploy, AwsDeployFunction, AwsDeployList,
AwsInfo, AwsInvoke, AwsInvokeLocal, AwsLogs, AwsMetrics, AwsProvider, AwsRemove, AwsRollback, Config, Create, Deploy, Info, Install, Invoke, Logs, Metrics, Package, Plugin, Remove,
Rollback, ServerlessStepFunctions, SlStats
As you can see ServerlessStepFunctions
is registered as a plugin but isn't listed under the deploy section of commands.
> serverless deploy stepf statemachines --stage $NODE_ENV -n
Serverless Error ---------------------------------------
Command "deploy stepf" not found, Run "serverless help"
for a list of all available commands.
Stack Trace --------------------------------------------
ServerlessError: Command "deploy stepf" not found, Run "serverless help" for a list of all available commands.
at _.reduce (/Users/colton/git/vs/fusion2.0/etl/node_modules/serverless/lib/classes/PluginManager.js:176:13)
at arrayReduce (/Users/colton/git/vs/fusion2.0/etl/node_modules/serverless/node_modules/lodash/lodash.js:704:21)
at Function.reduce (/Users/colton/git/vs/fusion2.0/etl/node_modules/serverless/node_modules/lodash/lodash.js:9683:14)
at PluginManager.getCommand (/Users/colton/git/vs/fusion2.0/etl/node_modules/serverless/lib/classes/PluginManager.js:166:14)
at PluginManager.validateCommand (/Users/colton/git/vs/fusion2.0/etl/node_modules/serverless/lib/classes/PluginManager.js:233:10)
at Serverless.run (/Users/colton/git/vs/fusion2.0/etl/node_modules/serverless/lib/Serverless.js:83:24)
at serverless.init.then (/Users/colton/git/vs/fusion2.0/etl/node_modules/serverless/bin/serverless:23:50)
From previous event:
at runCallback (timers.js:666:20)
at tryOnImmediate (timers.js:639:5)
at processImmediate [as _immediateCallback] (timers.js:611:5)
From previous event:
at __dirname (/Users/colton/git/vs/fusion2.0/etl/node_modules/serverless/bin/serverless:15:28)
at Object.<anonymous> (/Users/colton/git/vs/fusion2.0/etl/node_modules/serverless/bin/serverless:27:4)
at Module._compile (module.js:570:32)
at Object.Module._extensions..js (module.js:579:10)
at Module.load (module.js:487:32)
at tryModuleLoad (module.js:446:12)
at Function.Module._load (module.js:438:3)
at Module.runMain (module.js:604:10)
at run (bootstrap_node.js:393:7)
at startup (bootstrap_node.js:150:9)
at bootstrap_node.js:508:3
Get Support --------------------------------------------
Docs: docs.serverless.com
Bugs: github.com/serverless/serverless/issues
Forums: forum.serverless.com
Chat: gitter.im/serverless/serverless
Your Environment Information -----------------------------
OS: darwin
Node Version: 6.10.1
Serverless Version: 1.11.0
Can you declare activities?
I realize the implementation of the activity would not be serverless, and therefore out of the scope of this, but how would you declare an activity task in the step-function with this plugin?
Would be nice if you could add support for an optional name property.
E.g.:
stepFunctions:
stateMachines:
- name: myMachineName
MyMachine:
<description>
I would prefer to name the step function dynamically in order reference it from within a lambda that starts executing it, instead of having to hardcode the name into the lambda
Great job with the plugin btw 👍
I'd like to suggest that we don't remove a superceded state machine when it is modified and redeployed.
It's highly likely, over the life of a solution employing step functions, that a step function will be modified where there are completed and in-progress executions. I understand that the step function won't be deleted until all executions are complete, however we want to keep the history of a step function and retain access to completed executions.
With the current behaviour of the plugin we remove the old version as soon as all executions are completed (at least as far as I can see).
Interested in other opinions or other ways to retain history of executions.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.