[新機能] CloudWatch Events で StepFunctions を起動する
こんにちは、菊池です。
先日のアップデートで、StepFunctionsのステートマシンをCloudWatch Eventsで起動することが可能になりました!
これまで、CloudWatch EventsをトリガにStepFunctionsを実行するためには、間にLambdaを入れる必要がありましたが、直接StepFunctionsを実行できるようになりました。
スケジュール実行や、イベントトリガーでの実行ができるようになるので、自動化が捗ります。
やってみた
早速試します。今回は、以前紹介した、スポットインスタンスの自動入札を実行しました。
CloudWatch Eventsのルールを作成します。
イベントソースはスケジュールとし、毎日正午に起動するよう設定します。ターゲットでStep Functions state machienが選択可能になっています。
ターゲットにstate machineを選択し、入力を設定します。イベントの他、定数(JSON)や変換も可能です。また、state machineを実行するためのIAMロールを作成または指定します。
イベントが作成されました。あとは実行される12:00まで正座で待機します。
12時を過ぎたところで実行が開始されました!
state machineのログを見ると、ちゃんとCloudWatchのスケジュールイベントでトリガーされたことがわかります。
最後に
Step Functions が CloudWatch Eventsから起動する新機能を紹介しました。
CloudWatch Eventsから直接起動できることで、様々な自動処理への応用が可能になります。今回試したスケジュール以外にも、
- S3へのファイル保存
- AutoScalingの起動
- EC2の起動/停止
などのイベントに合わせて、Step Functions でフロー処理が可能です。以前も、Lambdaを経由しての実行を実装することは可能でしたが、直接起動することでコードの実装なしに、また、Step Functionsの履歴で一元管理できるようになることは大きいと思います。
オペレーションを自動化し、スケールできる運用を目指しましょう。