AWS Step FunctionsのWorkflow StudioをVS Codeで動かす

# はじめに

AWS Step Functionsを作る際、GUIで作成できるWorkflow Studioの機能があります。

これが、VSCodeで使えるようになったとのことで触ってみました。

https://aws.amazon.com/about-aws/whats-new/2025/03/aws-step-functions-workflow-studio-vs-code-ide/

# 概要

- VSCodeの拡張機能AWS Toolkit 3.49.0以上が必要
- ローカルで作成して反映、作成済みのステートマシンをローカルで編集、の両方が可能


# 参考

https://aws.amazon.com/blogs/compute/introducing-an-enhanced-local-ide-experience-for-aws-step-functions/

https://aws.amazon.com/jp/blogs/news/introducing-an-enhanced-local-ide-experience-for-aws-step-functions/

# やってみた

## VSCode Toolkitインストール

AWS Toolkitが必要です。バージョンは3.49.0以上が必要とのことです。
現在は3.52.0が最新版でした。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/553680/bafc1b7a-5362-4b37-9803-7a9904c28a31.png)


## 新規にステートマシンを作成

VSCodeで作成して、その内容をAWSに反映してみます。
反映する際にIAMロールを指定する必要がありますので、ロールは先に用意しておきます。

### 作成・編集
VSCodeからサンプルのステートマシンを作成します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/553680/c7bdf3ac-491b-48c2-9415-a6e502cec27a.png)

テンプレートから適当なものを選びます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/553680/2ee78100-13bb-4091-9b22-bbbefb8394e8.png)
記述形式を選びます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/553680/6d754bfe-2d99-4736-9d9f-75810ecc21a9.png)

コードの上のところにある、`Open with Workflow Studio`をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/553680/5fb97a93-be0f-418b-9246-bb5e0c05f36d.png)
GUIの画面が出てきました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/553680/0005c6bf-a813-465a-a9c1-7de0323a38d4.png)

試しにWaitの時間を変更してみました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/553680/940177dd-c97e-4fd9-9921-786d6ac3a6ba.png)

### 反映
AWS上に反映するには、コードモードの`Publish to Step Functions`をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/553680/655aa80d-1e45-485b-a4d0-d40bfc8e018e.png)
リージョンを選択します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/553680/7be763f5-b3ac-4e81-a8dc-46f09c254416.png)
Quick Createを選択します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/553680/7f443cc5-a20a-4fc0-a55d-85671e016d27.png)
用意していたロールを選択します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/553680/03c06836-e15b-441f-af4c-0f17bafdf8bb.png)
名前を指定します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/553680/5ba44d9a-b0c7-4d69-abdd-119b8bba160c.png)
コンソールから、作成されていることが確認できます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/553680/da08905d-db66-49bb-b4af-8f829061e6a4.png)


## 既存のステートマシンを更新
既に作成済みのステートマシンを操作してみます。

コンソールからテスト用のステートマシンを作成します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/553680/9e81bd31-7606-493d-a8d5-951fd8f59e29.png)

### VSCodeから開く
VSCodeの左ペインから、先ほど作成したステートマシンを右クリックし、`Open with Workflow Studio`をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/553680/1500a529-919e-4d70-b2b0-73294619a8d0.png)

左側にコードが、右側にGUIが出てきました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/553680/8e778ad6-106f-43c6-9d40-f566e55139cf.png)

### 編集して反映
GUIを操作して、ステートマシンを編集できます。最後のステートを変更してみました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/553680/f292c30e-e5eb-43f3-8908-46a48b39d2c1.png)

元のステートマシンに反映するには、コードモードの`Publish to Step Functions`をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/553680/c5e8e2b5-6620-4436-9128-39250f7193ba.png)
リージョンを選びます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/553680/50207025-1e69-4ed7-9dd7-ae78d25bd229.png)
Quick Updateを選びます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/553680/aec4f9b9-89ba-4fff-9cd9-0dad121dfe14.png)
上書きする対象を選択します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/553680/ebee7fbe-3bb4-4910-8ce3-228acda6297b.png)
ブラウザから見ると、更新されていることが確認できます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/553680/cddfb3b4-d49a-414a-8beb-423a13bef9d1.png)

### テスト・実行
そのまま続けて、ステートのテストを行ってみます。
コンソールでの操作と同じように、ステートを選択して`テスト状態`をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/553680/4e6fa9d1-0d81-48f8-966f-fb7aa879e96c.png)
テストを開始します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/553680/3c5d45fa-bbac-4504-8bfc-772b5fc1c0df.png)
問題なく実行できます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/553680/1a0b8e75-9d7a-49e7-b683-b2dfbec6133d.png)

ステートマシン全体を実行する場合は、左ペインから指示するようです。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/553680/97c1bfb5-5730-4ef8-a984-324f468f294b.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/553680/5c834d60-c51d-46aa-a52e-405156e1093d.png)
結果はコンソールから確認できます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/553680/7bead402-8b08-40fc-8465-1afece355291.png)

# おわりに

今回はVSCodeで出来るようになったAWS Step FunctionsのWorkflow Studioを触ってみました。
VSCodeに使い慣れた人や、ステートマシーンのコードをGitで管理している人には便利な機能ではないでしょうか。

この記事がどなたかのお役に立ちましたら幸いです。