【AWS】StepFunctionメモ

# 概要
下記Stepfunctionsハンズオン実施後の設定方法のメモです。
ハンズオン実施した人向けになります。
[AWS Step Functions 入門 - ビジュアルツールを使ってローコードにワークフローを作成する](https://pages.awscloud.com/JAPAN-event-OE-Hands-on-for-Beginners-StepFunctions-2022-reg-event.html?trk=aws_blog_k)

# 参考資料
[Step Functions の入出力処理](https://docs.aws.amazon.com/ja_jp/step-functions/latest/dg/concepts-input-output-filtering.html)
[Amazon Polly でサポートされている言語](https://docs.aws.amazon.com/ja_jp/polly/latest/dg/SupportedLanguage.html)

# 構成図
![stepfunction.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2273453/fc3ac2e9-0374-99cf-53d7-7f8e42292f1f.png)

# 前提
DynamoDBにテーブルを作成する。
・DynamoDBテーブル名：Article
・DynamodBパーティションキー：ArticleID

左メニュー「項目を探索」→画面右側「項目を作成」
値：0001

新しい属性追加→文字列
属性名：0001
値：任意の文章
→項目を作成

※再度項目を追加し、属性名：0002を作成する。


# DynamoDBからアイテムを読み取る【DynamoDB GetItem】
![スクリーンショット 2023-06-08 151948.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2273453/fa2181c7-01f1-f746-c299-6193237aa8d3.png)

### 設定
ロールにIAMポリシー追加：AmazonDynamoDBFullAccess
![スクリーンショット 2023-06-08 152740.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2273453/1564d1ec-233f-f947-e752-e0b87b1859c6.png)

# Choice Item is present - アイテムの選択条件を設定
![スクリーンショット 2023-06-08 153114.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2273453/8ad37cfe-6cff-cb97-7c91-c049b87a8d84.png)

![スクリーンショット 2023-06-08 153313.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2273453/ce03a698-92bd-f8ea-58bb-6ab16bf94a48.png)

# Parallel - 分岐条件

![スクリーンショット 2023-06-08 153426.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2273453/56dfa00b-3892-ba17-0290-6e493c79f118.png)
※ここでは条件を設定しない

# 分岐①-1 日本語→英語に変換する【Translate Text】
![スクリーンショット 2023-06-08 153635.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2273453/cea254aa-f636-7b33-3eff-e9a17eef1339.png)

### 設定
ロールにIAMポリシー追加：TranslateReadOnly
![スクリーンショット 2023-06-08 153858.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2273453/a27de1b0-67fc-0a7a-5eff-1e096b70833f.png)

### 出力
![スクリーンショット 2023-06-08 154054.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2273453/6180ae55-dbac-c387-495c-4f81136bbe73.png)

# 分岐①-2 Translate Textの出力結果をDynamoDBに保存する【DynamoDB UpdateItem - EnglishVersion】
![スクリーンショット 2023-06-08 154216.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2273453/5d4e783f-f67a-c0f5-dc81-d24263e78dcf.png)

### 設定
![スクリーンショット 2023-06-08 154420.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2273453/30735cbc-cbb5-c303-d85e-beb2cf9ba105.png)

# 分岐②-1 テキストを音声変換し、S3バケットにmp3として保存する【StartSpeechSynthesisTask】
S3バケットを作成する。
ポリシー追加：AmazonS3FullAccess
![スクリーンショット 2023-06-08 154714.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2273453/7508d67f-4f72-0b2a-ad18-4f60b924f8be.png)

### 設定
![スクリーンショット 2023-06-08 160413.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2273453/04385f6f-4713-660f-c66d-2dff6a8ff2b2.png)

### 出力
![スクリーンショット 2023-06-08 160906.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2273453/82e8e186-c5f8-e4ae-8ed1-15cee9b36011.png)

# 分岐②-1でTaskIDが生成されるので受け取る
![スクリーンショット 2023-06-08 161033.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2273453/8b532df3-7260-90d5-d0b0-fad95a76d1a6.png)

### 設定
![スクリーンショット 2023-06-08 162326.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2273453/0946d776-4f87-8135-46d7-52565e32a0a5.png)

### 出力
![スクリーンショット 2023-06-08 160906.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2273453/82e8e186-c5f8-e4ae-8ed1-15cee9b36011.png)

# 上記タスクが「complated」かを判別する【Choice - Task is complated】

![スクリーンショット 2023-06-08 162935.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2273453/387cf405-6032-dca8-3724-73477eda1e2d.png)

![スクリーンショット 2023-06-08 162439.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2273453/4cbb2ae6-61de-0c29-10a9-cccef45c805d.png)

### 設定
![スクリーンショット 2023-06-08 162828.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2273453/2619133e-fa3d-72d0-000b-36834fadd0e2.png)

# 「complated」になっていない場合【Wait】
![スクリーンショット 2023-06-08 162935.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2273453/8b4fd52a-af14-19c1-c04a-4bcfc1a95f9c.png)

# 設定
・5秒待つ設定
・次の状態：前回のタスクを指定
![スクリーンショット 2023-06-08 164442.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2273453/a63f0c74-4519-4b2d-d884-17c8c671d946.png)

# DynamoDBにmp3のURLをアップロード【DynamoDB UpdateItem - mp3 URL】
![スクリーンショット 2023-06-08 164730.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2273453/6b380b97-6dc3-358e-8f99-5471dc598fef.png)

### 設定
![スクリーンショット 2023-06-08 165107.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2273453/3a6064c3-eb38-4c8e-5cf7-4e3d83c35f8f.png)