【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 を書いていた部分がそのままステートの定義に置き換わるイメージで、コード量が減るだけでなく、ワークフロー全体が一箇所で見渡せるのが想像以上に快適です。