はじめに
AWS Hands-on for Beginners をやってみたシリーズ。
今回は、AWS Step Functions 入門 – ビジュアルツールを使ってローコードにワークフローを作成する をやってみました。
これまでにやってみたのはこちら。
- ハンズオンはじめの一歩: AWS アカウントの作り方 & IAM 基本のキ をやってみた
- Security #1 アカウント作成後すぐやるセキュリティ対策 をやってみた
- Network編#1 AWS上にセキュアなプライベートネットワーク空間を作成する をやってみた
- Network編#2 Amazon VPC間およびAmazon VPCとオンプレミスのプライベートネットワーク接続 をやってみた
- Network編#3 クライアントVPNをつかって、リモート接続環境を構築しよう をやってみた
- スケーラブルウェブサイト構築編 をやってみた
- Serverless #1 サーバーレスアーキテクチャで翻訳 Web API を構築する をやってみた
- Serverless #2 AWS SAM を使ってテンプレートからサーバーレスな環境を構築する をやってみた
- Serverless #3 AWS Lambda と AWS AI Services を組み合わせて作る音声文字起こし & 感情分析パイプライン をやってみた
内容と感想
ワークフローを GUI で作れるのは直感的でとてもよく、コードを書く必要もないので、これで実現できる機能であれば積極的に使っていくべきものだと感じました。
ただ、Step Functions でどこまでできるのかということが直感的にまったくピンと来なかったので、まずはそこの情報取得が大変なのかなという印象。
あとは、仮にノーコードでは対応できないような要件であっても、そこだけ Lambda function に切り出すようにすれば Step Functions はかなりの範囲の要件で使えるのでは?と思ったが、最後に 「Lambda と組み合わせるのもよくあるパターン」と言及されていた(^_^;
なので、かなりいろいろな場面で使える可能性があるものだと感じました。
一点気になるのは、この Step Function のワークフローは AWS コンソール以外からでは開始できないのか?ということ。
たぶんそんなことは無いのだと思うが、その辺の話には今回はまったく触れられていなかったので、 実際のサービスに落とし込む時にはどのような形で公開されるのかが気になりました。
ハンズオンの内容はザックリ下記の通り。
- Step Functions workflow でステートマシンを作成
- 永久ループがあった時のためにタイムアウト値を設定
- ステートマシンから DynamoDB のデータを取得する
- DynamoDB を作成
- IAM 設定が必要
- ステートマシンの入力値を元に DynamoDB からデータを取得するよう変更
- データが取得できた時とできなかった時で分岐するよう実装
- Choice ステートを使う
- 取得したデータを並列で処理する
- Parallel ステートを使う
- 片方は Translate を使って英語に翻訳する
- IAM 設定が必要
- 入力もレスポンスに含めるように設定
- 翻訳したものを DynamoDBに登録するようステートマシンに処理を追加する
- もう一方は Polly を使って音声ファイルを作成する
- まずは出力用の S3 を作成
- S3, Polly のための IAM を設定
- ステートマシンに Polly の処理を追加
- 入力された文字列から mp3 を作成し、指定した S3 に出力するように設定
- Polly の処理ステータスを取得するタスクをステートマシンに追加
- さらに、Choice ステートを追加し、処理ステータスが completed になるまでループするよう設定
- completed になった際には DynamoDB に登録する処理を追加
- 片方は Translate を使って英語に翻訳する
- Parallel ステートを使う
コメント