こんにちは~浮田です。
「つなぎの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 統合の対象が一気に広がりました。
Step Functions → Lambda → AWS サービス A
→ Lambda → AWS サービス B
→ Lambda → AWS サービス C
Step Functions → AWS サービス A
→ AWS サービス B
→ AWS サービス C
2026年3月26日、AWS Step Functions に 28の新サービス統合 と 1,100以上の新しい API アクション が追加されました。
これにより、Step Functions から直接呼び出せる AWS サービスは 220以上 になりました。
つまり、ほとんどの AWS サービスを「コードを書かずに」ワークフローから呼べるようになった
ということです。
今回の追加で特に注目なのが Amazon Bedrock AgentCore との統合です。
アップデート情報で3つ紹介されていたので、この記事でもご紹介します。
何ができるようになった?
|
できること |
説明 |
|
AI エージェントの呼び出し |
ワークフローのステップとして AgentCore ランタイムを直接呼び出せる |
|
自動リトライ |
エージェント呼び出しが失敗しても、Step Functions の組み込みリトライで自動復旧 |
|
並列実行 |
Map ステートで複数の AI エージェントを同時に実行できる |
|
インフラの自動管理 |
エージェントの作成・更新・削除をワークフローのステップとして組み込める |
具体例:複数の AI エージェントを並列で動かす
たとえば「ユーザーの問い合わせを3つの専門エージェントに同時に投げて、結果を統合する」というワークフローが、こんな定義だけで実現できます。
}
```
Lambda を1行も書かずに、リトライ付きの並列エージェント呼び出しが完成します。
もう一つの注目が Amazon S3 Vectors との統合です。S3 Vectors は 2025年12月に GA した、専用ベクター DB なしでベクターデータを扱えるストレージサービスです。
何ができるようになった?
|
できること |
説明 |
|
ベクターの書き込み |
エンベディング生成後、Lambda なしで直接 S3 Vectors に格納できる |
|
ベクター検索 |
近似近傍探索(ANN)をワークフローのステップとして実行できる |
|
パイプラインの自動化 |
ドキュメント取り込み → エンベディング → 格納を1つのワークフローで完結できる |
|
インデックス管理 |
バケット・インデックスの作成もワークフローから操作できる |
S3 へのファイルアップロードをトリガーに、Bedrock でエンベディングを生成して S3 Vectors に格納するまでのパイプラインが、Lambda ゼロで組めるようになります。
Lambda の Durable Execution(永続実行)API との統合も追加されました。Durable Execution は Lambda の状態を永続化し、長時間・多ステップの処理を安全に実行できる機能です。
何ができるようになった?
|
できること |
説明 |
|
冪等な呼び出し |
実行名を指定することで、同じリクエストの重複実行を防止できる |
|
実行管理 |
Durable Execution の開始・状態確認・停止をワークフローのステップとして組み込める |
|
安全な長時間処理 |
タイムアウトや中断を気にせず、Step Functions から処理の完了を待てる |
Step Functions 側でリトライや分岐を制御しつつ、重い処理は Durable Execution に任せる、という役割分担が自然に組めるようになります。
Step Functions → Lambda → AWS サービス A
→ Lambda → AWS サービス B
→ Lambda → AWS サービス C
Step Functions → AWS サービス A
→ AWS サービス B
→ AWS サービス C
「直接呼べる」と言われても、実際どのくらい楽になるのか体感しないとピンとこない。ということで、手元で動かしてみました。
なお今回は、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 を書いていた部分がそのままステートの定義に置き換わるイメージで、コード量が減るだけでなく、ワークフロー全体が一箇所で見渡せるのが想像以上に快適です。