概要
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です
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>
まとめ
是非、フィードバックなどお待ちしています!それでは良いステップファンクションライフを!