Blog 開発ブログ

Blog

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

概要

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


コマンドの使い方

deployinvokeremoveというコマンドを用意しています。
すべて、–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>

まとめ

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

サーバーレスで
クラウドの価値を最大限にMaximize the cloud value with serverless

Serverless Operationsはこれまでグローバルの第一線で培ってきたクラウド技術(AWS − アマゾンウェブサービス)の豊富な実績と知見を活かし、お客さまのサーバーレスに関するさまざまな課題を解決します。