Amazon Bedrock AgentCore Runtimeで zip ファイルを直接アップロードでデプロイしてみた

に公開

はじめに

Fusicのレオナです。本ブログは2025年11月にAmazon Bedrock AgentCoreに追加された機能である、zipファイルを直接アップロードしてAIエージェントをデプロイできるようになったので試してみました。
https://aws.amazon.com/jp/about-aws/whats-new/2025/11/amazon-bedrock-agentcore-runtime-code-deployment/

概要

従来はコンテナイメージを Amazon ECRにPush後、Amazon Bedrock AgentCore RuntimeでデプロイしてAIエージェントが動作していましたが、今回のアップデートからAmazon ECRの代わりにAmazon S3バケットにアップロードして動作することも可能になりました。Amazon S3を介してデプロイする場合、3つの選択肢から選ぶことができます。

  • Start with a template

    • Strands Agentsをベースにしたコードテンプレートを選択できます。また、事前に作成したAmazon S3バケットを指定することで、選択したテンプレートのコードを自動的にS3にアップロードして保存できます。
  • Upload to S3

    • zip化したソースコードをAmazon S3バケットにアップロードして、Amazon Bedrock AgentCore Runtimeにデプロイできます。デプロイ時には「Agent entry point」でAIエージェントのエントリーポイントとなるファイルを指定することで、AIエージェントを起動できます。また、AWSマネジメントコンソール上から、zip化したソースコードを直接アップロードすることができます。
  • Choose from an existing S3 bucket

    • 事前にzipファイルをアップロード済みのAmazon S3バケットを選択し、該当するS3 URIを指定することで、Amazon Bedrock AgentCore Runtimeにデプロイできます。デプロイ時には「Agent entry point」でAIエージェントのエントリーポイントとなるファイルを指定することで、AIエージェントを起動できます。

今回はUpload to S3を試してみます。

実装

今回作成するものはStrands Agentsを使って質問をAIエージェントが答えるシンプルなものになります。

Strands Agentsとは

Strands Agentsは、AWSが2025年5月に公開したオープンソースのAIエージェント構築SDKで、2025年7月にバージョン1.0がリリースされました。数行のPythonコードでAIエージェントを作成できるモデル駆動型のフレームワークです。

ベータ版のStrands Agentsについて執筆した以下のブログも参考にしてください。
https://zenn.dev/fusic/articles/8dd670c37a8d68

準備

uvを使って実装を進めていきます。Pythonのバージョンは3.13になります。

1. デプロイメントパッケージを作成

任意のディレクトリで以下のコマンドを実行します。Amazon Bedrock AgentCore RuntimeはARM64アーキテクチャで動作するため、ライブラリ等の依存関係をARM64向けにビルドする必要があります。

uv pip install \
  --python-platform aarch64-manylinux2014 \
  --python-version 3.13 \
  --target=deployment_pkg \
  --only-binary=:all: \
  bedrock-agentcore \
  strands-agents

deployment_pkgが作られます。

2. Strands Agentsの実装 (main.py)

作成されたdeployment_pkgディレクトリ内でStrands Agentsが動作するmain.pyを実装します。

main.py
from bedrock_agentcore import BedrockAgentCoreApp
from strands import Agent

app = BedrockAgentCoreApp()
agent = Agent()

@app.entrypoint
def invoke(payload):
    return {"result": agent(payload.get("prompt", "")).message}

if __name__ == "__main__":
    app.run()

3. zip化する

main.pyが作成できたら、deployment_pkgディレクトリにある全てのフォルダー等まとてをzip化します。

zip -r deployment_pkg.zip .

zipファイルアップロード

  1. AWSマネジメントコンソールでAmazon Bedrock AgentCoreを開く
  2. ページの左サイドバーからエージェントランタイムを選択する
  3. ホストエージェントボタンをクリックする
  4. Agent Sourceのセクションから Choose fileをクリックし、zip化したdeployment_pkgをアップロード
  5. Agent entry pointセクションでmain.pyを入力する ※入力しないとエラーがでます。
  6. 今回はPython 3.13で作成したのでPython runtime versionのセクションでPython 3.13を選択する
  7. 新しいサービスロールを作成して使用を選択する
  8. ページ下部のホストエージェントボタンをクリックしてデプロイ
  9. デプロイが成功すると準備完了と表示される

実行例

今回はサンドボックス上でデプロイしたAIエージェントの動作確認を行います。

  1. 作成したエンドポイントを選択、テストエンドポイントボタンをクリック
  2. 入力のセクションにユーザークエリを入力
{"prompt": "こんにちは"}
  1. 実行ボタンをクリック
  2. 出力のセクションに結果が表示される

最後に

今回はAmazon Bedrock AgentCore RuntimeにS3を介してAIエージェントをデプロイする方法を試してみました。 AWS Lambdaと同様にzipファイルとしてアップロードすることができるようになりました。今回の機能追加でAIエージェントの検証サイクルを回しやすくなったと感じます。

Fusic 技術ブログ

Discussion