Edited at

Serverless FrameworkでStep Functionsが使えるプラグインをリリースしました

More than 1 year has passed since last update.


概要

Serverless Step Functions をリリースしました。Serverlessのコマンドを通してStep Functionsのデプロイや実行が可能です。Step Functionsを定義するためのAmazon State Languageもyamlで書くことが可能です。


Step Functionの定義

以下のようにstepFunctionsというステートメントを作って、そこにAmazon State Languageでstep functionを記述してください。yamlの記述のみ対応してます。

Resourceには通常、LambdaファンクションのARNを指定しますが、functionsステートメントの中のfunction名を指定すれば、OKです。


serverless.yml

functions:

hellofunc:
handler: handler.hello

stepFunctions:
stateMachines:
hellostepfunc:
Comment: "A Hello World example of the Amazon States Language using an AWS Lambda Function"
StartAt: HelloWorld
States:
HelloWorld:
Type: Task
Resource: hellofunc
End: true



コマンドの使い方

deploy, invoke, removeというコマンドを用意しています。

すべて、--state か -t でstep function名を指定します。上記の例で言えば、hellostepfuncを指定します。これは必須のオプションです。

また、--stageと--regionのオプションにも対応しているので、テスト環境と本番環境を分けたりといったことも可能です。


デプロイ

以下がコマンドになります。

$ sls deploy stepf statemachines --name <stepfunctionname> 

ちなみに、Step Functionは更新に対応していないのですが、作成済みのStep Functionを削除して新規作成することで更新に対応してます。実行履歴とかは消えちゃいますが、そこは仕方ないっすね。。


Step Function実行

--data か -d で引数のJSONデータを指定します。

$ sls invoke stepf --state <stepfunctionname> --data '{"foo":"bar"}'


削除

$ sls delete stepf --state <stepfunctionname>


まとめ

是非、フィードバックなどお待ちしています!それでは良いステップファンクションライフを!