この記事は、前回投稿した AWS Step Functions を使用したプログラミング不要のサーバーレスワークフロー構築 の続きとなります。
AWS Step Functions の Parallel ステートを使用して、日本語のテキストを英訳するワークフローを構築してみました。
Parallel ステート
AWS Step Functions の Parallel ステートは、Step Functions の中で複数のタスクを同時に実行するための機能です。
このステートを使用すると、複数の処理を並行して実行し、それらが完了するのを待ってから次のステップに進むことができます。
複数の処理を同時に実行し、それらの結果を組み合わせて最終的な結果を得ることができます。
1. ステートマシーンに 「Translate」を設定
日本語を英語にするためにステートマシーンのワークフローに「TranslateText」を設定します
① ステートマシンを選択 →「編集」→ ワークフローを開いて、「Success」をクリックしてDeleteキーなどで削除します
↓
↓
② 「フロー」から「Parallel」を選択して、ドラッグ&ドロップして、右に「Pass」、左に「TranslateText」をドラッグ&ドロップします
↓
↓
③ 「TranslateText」を選択して、API パラメータを編集します
日本語 → 英語にしたいので、以下のように設定し、「保存」をクリックします
項目 | 値 |
---|---|
SourceLanguageCode | ja |
TargetLanguageCode | en |
Text | 日本語を任意で入力 |
↓
2. IAM ロールに「Translate」のポリシーを設定
ステートマシーンの IAM ロールに Translate の IAMポリシーを追加します
① ステートマシーンを選択し、「IAM ロール ARN」をクリックします
② IAM ロールの画面が表示されるので、許可ポリシーの「許可を追加」→「ポリシーをアタッチ」をクリックします
③ 検索タブに「translate」を入力し、アタッチするポリシーを選択して「許可を追加」をクリックします
↓
④ ワークフローの画面に戻り「実行」をクリックします
⑤ 存在するデータ「ArticleID」の「0001」を設定し、「実行の開始」をクリックします
⑥ 実行結果を確認します
↓
↓
「おはようございます」が「Good morning」に変換されていることが確認できました
3. DynamoDB のデータに含まれる日本語の説明を英語に変換
「"Item"」の中にある「"Detail"」を変数として渡して、日本語を英語にする設定をしていきます
① ステートマシーンを選択 →「編集」をクリックしてワークフローを開き「TranslateText」の API パラメータを編集します
"Text": "おはようございます"
を"Text.$": $.Item.Detail.S
に変更して、「保存」をクリックします
③ 設定変更したステートマシーンを実行します
↓
↓
④ 日本語の説明が英語に変換されているか確認します
↓
・英語に変換されていることが確認できました
「0002」も実行して確認してみます
↓
↓
こちらも英語に変換されているのでワークフローの構築完了です
まとめ
AWS Step Functions の Parallelステートを利用して、日本語から英語への翻訳ワークフローを紹介しました。
Parallel ステートを使用することで、複数のタスクを同時に進めることができ、TranslateText を使用して、言語間のコミュニケーションをスムーズにするワークフローを構築しました。
関連記事
◆ AWS Step Functions を使用したプログラミング不要のサーバーレスワークフロー構築
https://cloud5.jp/mk-step-functions/