その Lambda本当に必要ですか?Step Functions がほぼ全ての AWS サービスを直接呼べるようになった
こんにちは~浮田です。
「つなぎの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つの専門エージェントに同時に投げて、結果を統合する」というワークフローが、こんな定義だけで実現できます。
}
```
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 を書いていた部分がそのままステートの定義に置き換わるイメージで、コード量が減るだけでなく、ワークフロー全体が一箇所で見渡せるのが想像以上に快適です。

