现在让我们在 AWS 上为 Agent App 运行生产环境。

AWS 设置

1

更新凭证

要在 AWS 上运行,您需要满足以下 任一 条件:

  1. 包含您的 AWS 凭证的 ~/.aws/credentials 文件
  2. AWS_ACCESS_KEY_ID + AWS_SECRET_ACCESS_KEY 环境变量

要创建凭证文件,请安装 aws cli 并运行 aws configure

2

更新区域和子网

workspace/settings.py 文件中更新 aws_region 并添加 2 个 子网(ECS 服务必需)

workspace/settings.py
ws_settings = WorkspaceSettings(
    ...
    # -*- AWS settings
    #在此处添加您的子网 ID
    subnet_ids=["subnet-xyz", "subnet-xyz"],
    ...
)

请检查子网是否属于选定的 aws_region

更新 Secret

1

Streamlit 应用密码和 API Secret

workspace/secrets/prd_app_secrets.yml 中更新 streamlit 应用密码和 API Secret

workspace/secrets/prd_app_secrets.yml
APP_PASSWORD: "admin"
# OPENAI_API_KEY: "sk-***"
2

RDS 数据库密码

workspace/secrets/prd_db_secrets.yml 中更新 RDS 数据库密码

workspace/secrets/prd_db_secrets.yml
# Secrets used by prd RDS database
MASTER_USERNAME: ai
MASTER_USER_PASSWORD: "ai9999!!"

创建 AWS 资源

使用以下命令创建 AWS 资源:

ag ws up --env prd --infra aws

这将创建:

  1. 用于应用程序的 ECS 集群
  2. 用于在 ECS 集群上运行应用程序的 ECS 任务定义服务
  3. 负载均衡器,用于为应用程序路由流量。
  4. 控制入站和出站流量的 安全组
  5. 用于管理应用程序和数据库密钥的 Secrets
  6. 用于知识库和存储的 RDS 数据库

按 Enter 键确认,并等待资源启动。

  • RDS 数据库大约需要 5 分钟才能激活。
  • 这些资源定义在 workspace/prd_resources.py 文件中。
  • 使用 ECS 控制台 查看服务和日志。
  • 使用 RDS 控制台 查看数据库实例。

生产 Streamlit

打开负载均衡器 DNS,该 DNS 在创建 Streamlit 应用时提供

  • 输入 prd_app_secrets.yml 文件中的 APP_PASSWORD (默认值:admin
  • 输入用户名并测试您的 AI Agent。

生产 FastAPI

  • 打开负载均衡器 DNS + /docs 端点以查看 API 端点。
  • 使用以下内容测试 /v1/agents/{agent_id}/runs 端点
{
  "message": "howdy",
  "agent_id": "sage",
  "stream": true
}

更新生产环境

请遵循 此指南 来更新您的生产应用程序。您需要:

  1. 创建一个新镜像
  2. 更新 ECS 任务定义和服务。

删除 AWS 资源

尽情探索,然后使用以下命令删除 AWS 资源:

ag ws down --env prd --infra aws

或者使用以下命令删除单个资源组:

ag ws down --env prd --infra aws --group app

下一步

恭喜您在 AWS 上成功运行了 Agent App。后续步骤: