【AWS】コラム

その Lambda本当に必要ですか?Step Functions がほぼ全ての AWS サービスを直接呼べるようになった

作成者: ゼネックコミュニケーション|May 11, 2026 1:28:44 AM

こんにちは~浮田です。

「つなぎのLamdaコード」、書いてませんか?

AWS のサービスを組み合わせてワークフローを作るとき、こんなコードを書いた経験はないでしょうか。

```python
Lambda の中で別の AWS サービスを呼び出すだけのコード
import boto3

def handler(event, context):
 client = boto3.client('some-service')
 response = client.some_api_call(...)
 return response

```

やっていることは「AWS サービスの API を呼ぶだけ」。
でも Lambda 関数を作って、IAM ロールを設定して、エラーハンドリングを書いて…。

このつなぎのコード、Step Functions の SDK 統合を使えば不要です。

そして今回、その SDK 統合の対象が一気に広がりました。

Before:Lambda を挟んでサービスを呼ぶ

Step Functions → Lambda → AWS サービス A
   → Lambda → AWS サービス B
    → Lambda → AWS サービス C

  • Lambda 関数を3つ作る必要がある
  • それぞれに IAM ロール、デプロイ、ログ設定が必要
  • エラーハンドリングも自分で書く

After:Step Functions から直接呼べるものが増えました。

Step Functions → AWS サービス A
   → AWS サービス B
    → AWS サービス C

  • Lambda 不要
  • リトライ・エラーハンドリングは Step Functions の機能で宣言的に定義
  • 管理するリソースが減る

2026年3月26日、AWS Step Functions に 28の新サービス統合 と 1,100以上の新しい API アクション が追加されました。

これにより、Step Functions から直接呼び出せる AWS サービスは 220以上 になりました。

つまり、ほとんどの AWS サービスを「コードを書かずに」ワークフローから呼べるようになった

ということです。

 

目玉は Bedrock AgentCore との統合 

今回の追加で特に注目なのが Amazon Bedrock AgentCore との統合です。
アップデート情報で3つ紹介されていたので、この記事でもご紹介します。

何ができるようになった?

Bedrock AgentCore 連携でできること

できること

説明

AI エージェントの呼び出し

ワークフローのステップとして AgentCore ランタイムを直接呼び出せる

自動リトライ

エージェント呼び出しが失敗しても、Step Functions の組み込みリトライで自動復旧

並列実行

Map ステートで複数の AI エージェントを同時に実行できる

インフラの自動管理

エージェントの作成・更新・削除をワークフローのステップとして組み込める

具体例:複数の AI エージェントを並列で動かす

たとえば「ユーザーの問い合わせを3つの専門エージェントに同時に投げて、結果を統合する」というワークフローが、こんな定義だけで実現できます。

```json
{
"StartAt": "InvokeAgents",
"States": {
 "InvokeAgents": {
  "Type": "Map",
   "ItemsPath": "$.agents",
   "Iterator": {
    "StartAt": "CallAgent",
    "States": {
     "CallAgent": {
      "Type": "Task",
      "Resource": "arn:aws:states:::aws-sdk:bedrockagentcore:invokeAgent",
      "Parameters": {
       "AgentId.$": "$.agentId",
       "Input.$": "$.prompt"
     },
         "Retry": [
           {
              "ErrorEquals": ["States.ALL"],
              "IntervalSeconds": 5,
              "MaxAttempts": 3,
              "BackoffRate": 2
            }
          ],
          "End": true
         }
       }
     },
     "Next": "AggregateResults"
    },
      "AggregateResults": {
        "Type": "Pass",
        "End": true
    }
  }

}

```

 Lambda を1行も書かずに、リトライ付きの並列エージェント呼び出しが完成します。 

 

S3 Vectors 統合で RAG パイプラインも簡単に  

もう一つの注目が Amazon S3 Vectors との統合です。S3 Vectors は 2025年12月に GA した、専用ベクター DB なしでベクターデータを扱えるストレージサービスです。

何ができるようになった?

できること

説明

ベクターの書き込み

エンベディング生成後、Lambda なしで直接 S3 Vectors に格納できる

ベクター検索

近似近傍探索(ANN)をワークフローのステップとして実行できる

パイプラインの自動化

ドキュメント取り込み → エンベディング → 格納を1つのワークフローで完結できる

インデックス管理

バケット・インデックスの作成もワークフローから操作できる

S3 へのファイルアップロードをトリガーに、Bedrock でエンベディングを生成して S3 Vectors に格納するまでのパイプラインが、Lambda ゼロで組めるようになります。

 

Lambda Durable Execution との統合  

Lambda の Durable Execution(永続実行)API との統合も追加されました。Durable Execution は Lambda の状態を永続化し、長時間・多ステップの処理を安全に実行できる機能です。

何ができるようになった?

できること

説明

冪等な呼び出し

実行名を指定することで、同じリクエストの重複実行を防止できる

実行管理

Durable Execution の開始・状態確認・停止をワークフローのステップとして組み込める

安全な長時間処理

タイムアウトや中断を気にせず、Step Functions から処理の完了を待てる

Step Functions 側でリトライや分岐を制御しつつ、重い処理は Durable Execution に任せる、という役割分担が自然に組めるようになります。

Before:Lambda を挟んでサービスを呼ぶ

Step Functions → Lambda → AWS サービス A
       → Lambda → AWS サービス B
        → Lambda → AWS サービス C

  • Lambda 関数を3つ作る必要がある
  • それぞれに IAM ロール、デプロイ、ログ設定が必要
  • エラーハンドリングも自分で書く

After:Step Functions から直接呼ぶ

Step Functions → AWS サービス A
       → AWS サービス B
        → AWS サービス C

  • Lambda 不要
  • リトライ・エラーハンドリングは Step Functions の機能で宣言的に定義
  • 管理するリソースが減る

 

実際に動かしてみた  

「直接呼べる」と言われても、実際どのくらい楽になるのか体感しないとピンとこない。ということで、手元で動かしてみました。

なお今回は、AgentCore の代わりに Bedrock Runtime(基盤モデルの直接呼び出し)を使っています。AgentCore は初見だと事前準備が多いため、同じ構成で手軽に試せる Runtime から始めるのがおすすめです。

構成は同じなので、慣れたら AgentCore に差し替えるだけです。

大まかな流れは以下のとおりです。

1. Step Functions コンソールを開く

2. 「ステートマシンの作成」をクリック

3. 「コードでワークフローを作成」を選択

4. フローのJSON 定義を貼り付け

5. IAM ロールに作成したロールを指定

6. 実行

 

作ったもの

議事録のメモテキストを1つ入れると、3種類のアウトプットが自動で生成される
というようなものを作成しました。

Step Functions が Bedrock を呼び出すためのロールを1つ作ります。

信頼ポリシー(Step Functions からの AssumeRole を許可):

 {
 "Version": "2012-10-17",
 "Statement": [
  {
   "Effect": "Allow",
   "Principal": {
    "Service": "states.amazonaws.com"
   },
   "Action": "sts:AssumeRole"
  }
 ]

インラインポリシー(Bedrock の呼び出しを許可)※Bedrock AgentCoreを使用する場合は適宜書き換えてください。 :

{
 "Version": "2012-10-17",
 "Statement": [
  {
   "Effect": "Allow",
   "Action": ["bedrock:InvokeModel"],
   "Resource": "*"
  }
 ]
}

Step Functions コンソールを開く

「ステートマシンの作成」をクリック

 JSONで定義する場合はコードタブを開きます。  

コードの部分に定義したい処理を書きます。

今回は簡易的に、

・アクションアイテムを抽出するAI
・決定事項のサマリーを作成するAI
・次回ミーティングのアジェンダ案を作成AI

を並列に処理させます

この部分をAIエージェントのワークフローのステップとして AgentCore ランタイムを直接呼び出せるようになったので、以下のような手間が減りますよね。

リトライ・エラーハンドリングを各Lambdaに書く。
管理するリソースが減る。

設定タブに必要なロールを選択します。

今回、必要なのはBedrock の呼び出し許可です。

 右上の実行を押します。  

 入力するJSONを貼り付けるか、インポートしてください。
今回は模擬データでいいので、AIで適当に作らせた会議のメモ書きのJSONを入力します。  

 実行を開始ボタンを押下します。  

 数秒待つと、処理が成功しました。図でもテーブルでも状態を確認できるのでわかりやすいですね。 

 失敗した場合はこのような表示が出てきて、原因を教えてくれます。
 

 出力は以下のようになりました。見にくいですが、きちんと、3つのAIがそれぞれの仕事をしてくれています。  

このようにBedrockと同じようにBedrock Agent Coreも呼び出せるようになったのが今回のアップデートですね。

従来だと、Step Functions から Lambda を呼び出し、その Lambda の中で Bedrock Agent Core を呼ぶコードが動いていました。(図はイメージです。)

アップデートで、その Lambda ブロックがなくても動くようになりました。

やることは同じ、経路が短くなり、管理するリソースが減ります。

AI を組み込んだワークフローを作りたいとき、Lambda でつなぎのコードを書く前に「Step Functions から直接呼べないか?」と一度立ち止まる価値があります。

今回の議事録デモは Bedrock Runtime を使いましたが、同じ構成で AgentCore も呼べます。シンプルなテキスト生成から始めて、必要になったらエージェントに移行する、という段階的なアプローチが取りやすいのもこのアーキテクチャの利点です。

 

こんな場面で特に効く

シーン

活用例

AI エージェントの本番運用

複数エージェントの並列実行 + リトライ + エラーハンドリング

RAG パイプライン構築

ドキュメント取り込み → ベクトル化 → S3 Vectors 格納を自動化

マイクロサービス連携

サービス間のつなぎ Lambda を削減

バッチ処理

複数 AWS サービスを順番に呼び出す定型処理

 

まとめ(従来との比較)

項目

従来

今回のアップデート

SDK 統合サービス数

約200

220以上(28サービス追加)

Bedrock AgentCore

Lambda 経由で呼び出し

Step Functions から直接呼び出し

S3 Vectors

Lambda 経由で呼び出し

Step Functions から直接呼び出し

Lambda Durable Execution

個別に管理

ワークフローから冪等に呼び出し

追加料金

なし

Step Functions の SDK 統合が広がるたびに、「Lambda を書かなくていいケース」が増えていきます。

特に今回は AI エージェントのオーケストレーション という、まさに Step Functions が得意とする領域への統合です。

複数の AI エージェントを協調させるワークフローを作りたい方は、まず試してみる価値があると思います。

今回のアップデートで Step Functions で扱える範囲が大きくなり、せっかくの機会なので触ってみましたが、思った以上にシンプルに動きました。Lambda を書いていた部分がそのままステートの定義に置き換わるイメージで、コード量が減るだけでなく、ワークフロー全体が一箇所で見渡せるのが想像以上に快適です