Upgrade to Pro — share decks privately, control downloads, hide ads and more …

EventBridge API Destination × AgentCore Runtime...

Avatar for Har1101 Har1101
January 24, 2026

EventBridge API Destination × AgentCore Runtimeで実現するLambdaレスなイベント駆動エージェント

JAWS-UG 群馬 #36 presents - JAWS-UG 北陸新幹線 #5 in 群馬 での登壇資料です

Avatar for Har1101

Har1101

January 24, 2026
Tweet

More Decks by Har1101

Other Decks in Technology

Transcript

  1. Who am I ? 福地 開 (ふくち はるき) @har1101mony 所属:JAWS-UG東京

    年次:3年目 業務:Agent Builder 選出:AWS Community Builders (AI Engineering) 2025 Japan AWS Jr.Champions 2025 Japan All AWS Certifications Engineers
  2. 今日話すこと ◆Lambda無しでAgentCore Runtimeを動かす方法について • AgentCoreおさらい • これまでのEventBridge×AgentCore Runtime構成 • EventBridge

    API Destination • イベント駆動エージェントを作る • まとめ ※資料中で「AI」と記載しているものは「生成AI」とりわけ「LLM」のことを指します ※所属組織とは一切関係ない、私個人の意見・考えとなります
  3. Amazon Bedrock AgentCore Runtime とは ◆AIエージェント(およびツール)のコードをホストする基盤 • サーバーレスにスケール可能なコンテナ基盤 • 裏側では、ユーザーのセッションごとにマイクロVMを立ち上げてくれる

    • LLMの出力待機時間など、I/O 待ちの時間はCPUリソースに課金されない • 実行時間を最長8時間に伸ばせるのでAIエージェントとの相性がGood https://speakerdeck.com/yuu551/2025nian-amazon-bedrock-agentcorematome (クラメソ神野さんの神資料読んでください!)
  4. ◆EventBridge API Destination • HTTPSエンドポイントをターゲットにできる • エンドポイントとの接続にOAuth認証を用いることができる ◆AgentCore Runtime •

    HTTPSエンドポイントが存在する • インバウンド認証において、OAuthのAPIリクエストを受けJWTを検証する ◆良い感じに組み合わせられるのでは…? 2つを整理する
  5. ◆AgentCore Runtime • 非同期実行を用いる • HTTPSエンドポイントの記法に注意が必要 ◆EventBridge API Destination •

    ターゲットの設定におけるエンドポイントのデコード処理 • 上記処理を回避してRuntimeのHTTPSエンドポイントを呼び出す方法 実装のポイント
  6. EventBridge API Destinationのデコード処理 ◆設定されたURL の %XX エンコーディングを自動的にデコードして からリクエストを送信する仕組みになっている • arn%3Aaws%3A...

    → arn:aws:... と変換する (arn部分が問題になっている) ◆しかし、AgentCore RuntimeのHTTPSエンドポイントは エンコードされた状態のものを期待している(前ページ参照) • デコードされた状態で送信すると404 UnknownOperationExceptionとなる
  7. リクエスト時の謎のエラーと手がかり https://docs.aws.amazon.com/bedrock-agentcore/latest/APIReference/API_InvokeAgentRuntime.html ◆accountID is required when agentRuntimeArn is provided as

    agentId instead of agentRuntimeArn ◆日本語:agentRuntimeARN の代わりに agentId を渡した場合は accountId が必要です • ARNを使わなくてもできる方法を示してくれている? • ドキュメント的には確かにaccountIdも指定できそう…
  8. エラー解決策 ◆agentId を渡した場合は accountId が必要 ◆逆説的にagentId+accountIdでagentRuntimeARNを代替できる? ◆従来の指定方法 • /runtimes/<エンコード済みARN>/my_agent/invocations •

    ARNでエンコード・デコード問題が発生 ◆今回の指定方法 • /runtimes/<agentId>/invocations?accountId=123456789012 • パスに / を含む ARN を入れる必要がない • やってみたら動いたので動きます (公式ドキュメントに記載がないので動きが変わる可能性もあります)