# AWS StepFunctions

## 概要

- MeDaCa基板上でバッチ処理を行うStepFunctionsステートマシン定義を格納する
- ステートマシン定義を格納する際のフォルダ構成は以下とする
  - `ステートマシン名/ステートマシン名.json`
- Git管理するファイルは雛形とし、実際の環境にデプロイする定義は`/TOOLS`フォルダ内のツールで生成したものを使用する
- ステートマシン定義の雛形内の環境固有の値は`#{値を表すキー名}`の形式で記述すること

## バージョン情報

- Python3.9.x

## フォルダ構成

```text
.
├── TOOLS                            -- 環境ごとのステートマシン定義生成ツール置き場
│   ├── convert.conf.yaml            -- ステートマシンの変換定義ファイル
│   ├── convert_definition.py        -- 定義変換ツールの本体
└── r-crm-datafetch-state            -- CRMデータ取得処理のステートマシン定義置き場
    ├── build                        -- 【Git管理対象外】TOOLSによって生成され、環境名のフォルダに、環境ごとの値に置き換えたステートマシン定義を配置する
    │   ├── product
    │   └── staging
    └── r-crm-datafetch-state.json   -- CRMデータ取得処理のステートマシン定義
```

## ツールの利用方法

### 事前準備

- `/TOOLS`フォルダに移動し、以下のコマンドを実行して、Pythonの仮想環境を作成する

```sh
cd ./TOOLS
# 仮想環境を作成
python -m venv ./.venv
# 仮想環境を有効化
# Mac/Linuxの場合
source ./.venv/bin/activate
# Windowsの場合
.\.venv\Scripts\activate
```

- 以下のコマンドを実行し、YAMLのパッケージをインストールする

```sh
pip install PyYAML
```

### 起動方法

```sh
cd ./TOOLS
python convert_definition.py r-crm-datafetch-state staging
```
