🍣

AWSアップデート_VSCodeでStep Functions Workflow Studioを用いた開発

2025/03/09に公開

導入

  • 2025年3月のアップデートにより、VSCodeの拡張機能であるAWS Toolkit for Visual Studio Code(以降、AWS Toolkitと表記)でStep FunctionsのWorkflow Studioを利用できるようになり、開発機能が強化されました。
  • アップデートされたAWS Toolkitを実際に動かし、GUIでのワークフロー定義・テスト・AWS環境へのデプロイといった、Step Functions開発の流れを試してみます。

AWS ToolkitでのStep Functions開発

事前準備

  • バージョン3.49.0以上のAWS ToolkitがVSCodeに導入されていることを、確認してください。
  • テスト実行用IAMロールを作成しておきます。AWS公式ドキュメントを参考に、必要なアクセス許可を設定しましょう。(Lambda呼び出しテスト向けに、Lambda実行権限も追加しています。)
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "CallTestStateAPI ",
            "Effect": "Allow",
            "Action": [
                "iam:PassRole",
                "states:RevealSecrets",
                "states:TestState"
            ],
            "Resource": "*"
        },
        {
            "Sid": "InvokeLambda",
            "Effect": "Allow",
            "Action": "lambda:InvokeFunction",
            "Resource": "arn:aws:lambda:ap-northeast-1:<your-account-id>:function:<your-function-name>"
        }
    ]
}
  • Step Functionsから呼び出すためのLambda関数を作成しておきます。検証用のため、現在時刻出力処理のみを実装します。
import json
import datetime

def lambda_handler(event, context):
    jst = datetime.timezone(datetime.timedelta(hours=9))
    current_time = datetime.datetime.now(jst).isoformat()
    print(f"Current Time (JST): {current_time}")
    return {
        "statusCode": 200,
        "body": json.dumps({"current_time": current_time})
    }

Workflow StudioでのStep Functions開発

Workflow Studioを用いた、VSCode上でのStep Functions開発を開始していきましょう。

まずは、空のtest.asl.jsonを作成します。VSCodeでtest.asl.jsonを開くと、自動的にWorkflow studioが表示されます。

実際に、ParallelステートでLambdaを並列実行するStep Functionsを作成してみましょう。アクションやフローをドラッグすることで、ワークフローを定義することができました。

設定>関数名 に事前準備で作成済みのLambda関数のArnを入力したうえで、Save Fileボタンをクリックしてください。

テスト

VSCode上で、個別のステートに対するテストを実施することも可能です。

Lambda Invoke ステートを選択したうえで、テスト状態ボタンをクリックすることで、テスト実施することができます。

AWS環境へのデプロイ

デフォルトエディタに戻る ボタンをクリックすると、jsonのエディタ画面に切り替わります。

Publish to Step Functionsをクリックし、VSCodeの表示内容に沿ってQuick Createすることで、新規ステートマシンが作成されます。

AWSコンソールにアクセスし、ステートマシンが作成されていることを確認できました。

AWSコンソールからステートマシンを実行したところ、無事実行に成功しました。

所感

直感的なGUIを活用し、VSCode上で開発からデプロイまで完結できる点は、開発者体験の向上に大きく貢献していると感じました。
(Step Functionsに限らず、全AWSサービスに言えることですが)インフラエンジニアだけでなくアプリケーションエンジニアがStep Functionsの開発に関わる機会が増えている印象です。AWS Toolkitを活用することで、開発効率・体験をさらに向上させられると感じました。

参考

https://docs.aws.amazon.com/ja_jp/step-functions/latest/dg/test-state-isolation.html
http://aws.amazon.com/jp/blogs/compute/introducing-an-enhanced-local-ide-experience-for-aws-step-functions/
https://aws.amazon.com/jp/about-aws/whats-new/2025/03/aws-step-functions-workflow-studio-vs-code-ide/
https://docs.aws.amazon.com/ja_jp/step-functions/latest/dg/workflow-studio-create.html

注意事項

  • 本記事は万全を期して作成していますが、お気づきの点がありましたら、ご連絡よろしくお願いします。
  • なお、本記事の内容を利用した結果及び影響について、筆者は一切の責任を負いませんので、予めご了承ください。
Accenture Japan (有志)

Discussion