十年匠心定制 · 商业建站与技术教学双线并行 咨询热线:400-886-1026 service@lmnt.cn
ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

Serverless Framework 如何用 ai.agents 配置部署 AWS Bedrock AgentCore AI Agent?

Serverless Framework 如何用 ai.agents 配置部署 AWS Bedrock AgentCore AI Agent? Serverless Framework 如何用 ai.agents 配置部署 AWS Bedrock AgentCore AI Agent【免费下载链接】serverless⚡ Serverless Framework – Effortlessly build apps that auto-scale, incur zero costs when idle, and require minimal maintenance using AWS Lambda and other managed cloud services.项目地址: https://gitcode.com/GitHub_Trending/se/serverless在 Serverless Framework 中AWS Bedrock AgentCore 提供了一组托管能力来部署 AI Agent你可以用 LangGraph、Strands Agents、CrewAI 或自研代码编写 Agent然后在serverless.yml的ai.agents下声明它由 Framework 完成镜像构建、推送 ECR、创建 IAM 角色和 CloudFormation 资源。本文走通一条最短路径从最小配置开始部署一个 Runtime Agent并用 CLI 命令验证部署结果。部署前的准备条件文档明确要求的前置条件AWS 账号已开通 Bedrock 模型访问安装了 Docker用于镜像部署和 auto-buildNode.js 20仅限 JavaScript AgentServerless Framework v4并已配置好 AWS 凭证。示例代码中 Agent 通过 Bedrock 调用模型因此需要在 Bedrock 控制台开通对应模型。例如langgraph-basic-code示例使用的是美国跨区推理画像us.anthropic.claude-sonnet-4-5-20250929-v1:0文档说明这是为了可用性和吞吐直接用模型 ID 可能不支持 on-demand 调用。最小配置ai.agents 怎么写在serverless.yml中声明 Agent 只需一个顶层ai属性。空配置用{}YAML 要求显式写空花括号service: my-ai-agent provider: name: aws region: us-east-1 ai: agents: chatbot: {}Agent 代码本身用 AgentCore Runtime SDK 包装。JavaScript 入口index.jsimport { BedrockAgentCoreApp } from bedrock-agentcore/runtime import { z } from zod // 你的 Agent 逻辑 —— 可以用任何框架LangGraph、Strands Agents、CrewAI 等 const agent createYourAgent() const app new BedrockAgentCoreApp({ invocationHandler: { requestSchema: z.object({ prompt: z.string(), }), async process(request) { const result await agent.invoke(request.prompt) return result }, }, }) app.run()Python 入口agent.pyfrom bedrock_agentcore.runtime import BedrockAgentCoreApp agent create_your_agent() # 你的 Agent 逻辑 app BedrockAgentCoreApp() app.entrypoint def agent_invocation(payload, context): result agent.invoke(payload.get(prompt)) return {result: result} app.run()上面的createYourAgent()是文档给出的占位说明需要你替换为自己的 Agent 初始化代码其余的入口包装结构保持不变。完整可运行的参考实现见仓库内的示例目录JavaScript auto-build 示例langgraph-basic其 serverless.yml 只有assistant: {}一行核心配置Python 代码部署示例langgraph-basic-codePython Docker 部署示例langgraph-basic-docker三种部署方式如何选AgentCore 支持三种部署方式选择哪一种决定了ai.agents下怎么写1. Auto-build无 Dockerfile最省事Framework 直接从源码自动构建镜像并推送到 ECR不需要写 Dockerfile。要求Node.js 项目package.json必须有lockfilepackage-lock.json、yarn.lock或pnpm-lock.yaml必须有入口为项目根目录的index.js或server.js或package.json里的start脚本Node.js 版本通过engines.node指定默认最新 LTS。Python 项目requirements.txt或pyproject.toml必须有用于安装依赖。配置就是前面的myAgent: {}适合快速起步和简单项目。2. Dockerfile 部署完全控制容器项目目录里放一个 DockerfileFramework 会自动检测ai: agents: myAgent: {} # 自动检测项目目录中的 DockerfileNode.js 和 Python 的 Dockerfile 示例来自文档FROM node:20-slim WORKDIR /app COPY package*.json ./ RUN npm ci --omitdev COPY . . CMD [node, index.js]FROM python:3.12-slim WORKDIR /app COPY . . RUN pip install -r requirements.txt CMD [python, agent.py]也可以显式指定 Dockerfile 位置、构建上下文和 ECR 仓库名ai: agents: myAgent: artifact: image: file: Dockerfile.agent # 自定义 Dockerfile 文件名 path: ./agent # 构建上下文目录 repository: my-agent-repo # 自定义 ECR 仓库名 buildArgs: PYTHON_VERSION: 3.12 ENV: production适合多语言项目、复杂依赖、需要完全控制容器环境的场景。已有 CI/CD 构建镜像时可以直接填现成的 ECR 镜像地址如123456789012.dkr.ecr.us-east-1.amazonaws.com/my-agent:latest。3. 代码部署仅 Python不经过 Docker直接把 Python 代码打包上传到 S3ai: agents: myAgent: handler: agent.py # 该属性触发代码部署模式 runtime: python3.13 # 可选 python3.10 / python3.11 / python3.12 environment: MODEL_ID: us.anthropic.claude-sonnet-4-5-20250929-v1:0handler是触发代码部署模式的关键属性。支持python3.10、python3.11、python3.12、python3.13默认。依赖通过requirements.txt打包langgraph-basic-code示例用custom.pythonRequirements.dockerizePip: true保证依赖按目标 Linux 运行时编译。适合简单 Python Agent 和快速迭代。执行部署配置完成后执行serverless deployserverless deploy期间 Framework 自动处理的事情来自 AI Agents 文档构建 Docker 镜像来自你的 Dockerfile 或自动从源码构建并推送到 ECR为每个 Agent 组件runtime、memory、gateway、browser、code interpreter创建最小权限 IAM 角色通过 CloudFormation 创建 Runtime、Endpoint、Gateway、Memory 等资源把 memory ID、gateway URL 等引用注入 Agent 的环境变量代码部署模式下把 Python 代码打包并上传到 S3。部署成功后输出中会包含调用所需的信息如 runtime ARN后续验证步骤会用到。部署结果验证用 CLI 调用已部署的 Agentserverless invoke --agent myAgent --data {prompt: Hello!}--agent还支持--path文件输入和--session-id多轮对话。参考示例中的完整写法sls invoke --agent assistant --data {prompt:What is 25 multiplied by 4?}用serverless info和serverless logs检查serverless info serverless logs --agent myAgent # 查看日志 serverless logs --agent myAgent --tail # 实时跟踪日志serverless logs --agent支持与函数日志相同的--startTime、--filter、--interval选项。用 boto3 直接调用 AgentCore API文档明确提醒不能直接用 curl 调用 AgentCore runtime必须使用 AWS SDK 的bedrock-agentcoreclient 和invoke_agent_runtime方法。示例项目附带了可直接运行的 test-invoke.pyruntime ARN 从serverless info获取RUNTIME_ARN你的runtime-arn python3 test-invoke.py等价的手动调用逻辑示例中的YOUR_RUNTIME_ARN需替换为 deploy 输出中的 runtime ARNimport boto3 import json import uuid client boto3.client(bedrock-agentcore, region_nameus-east-1) response client.invoke_agent_runtime( agentRuntimeArnYOUR_RUNTIME_ARN, # 来自 deploy 输出 runtimeSessionIdstr(uuid.uuid4()), payloadjson.dumps({prompt: What is 25 multiplied by 4?}).encode() ) result json.loads(response[response].read()) print(result)常用运行时配置部署成功后这些配置项直接影响运行行为均出自 Runtime Configurationai: agents: myAgent: environment: MODEL_ID: us.anthropic.claude-sonnet-4-5-20250929-v1:0 LOG_LEVEL: INFO lifecycle: idleRuntimeSessionTimeout: 900 # 秒范围 60-28800默认 900 maxLifetime: 3600 # 秒范围 60-28800默认 28800环境变量上限 50 个AWS 在部署时强制文档建议秘密信息放 AWS Secrets Manager 或 Parameter Store不要写进环境变量。network.mode默认PUBLIC需要访问私有资源时改VPC并配置subnets、securityGroups文档要求子网具备 NAT Gateway 出网能力、安全组放行 443 出站。默认认证是 AWS SigV4调用方需有效 AWS 凭证和 IAM 权限需要 Cognito/Auth0/Okta 等 OIDC 身份体系时用authorizer.type: CUSTOM_JWT配置。需要多版本访问时可用endpoints定义命名端点例如staging端点固定到version: 1production端点跟踪最新版。本地开发与清理部署后再进本地开发模式serverless dev会复用已部署的 IAM 角色和本地热重载多 Agent 时用--agent myAgent指定serverless dev serverless dev --agent myAgent如果serverless.yml同时定义了 Lambda 函数和 Agentserverless dev默认进入 Lambda 的 dev 模式需要加--agents显式选择 Agent dev 模式。详见 Dev Mode 文档。删除全部已部署资源serverless remove下一步部署验证通过后AI Agents 文档 给出的延伸方向Gateway 配置把 Lambda 函数和 API 接成 Agent 工具Memory 配置会话持久化如ai.agents.myAgent.memory: conversationsBrowser 与 Code Interpreter网页自动化和沙箱 Python 执行能力。完整的组合配置部署方式、网络、认证、生命周期、端点、环境变量一次看全可参考 Runtime 文档的 Complete Configuration Reference。【免费下载链接】serverless⚡ Serverless Framework – Effortlessly build apps that auto-scale, incur zero costs when idle, and require minimal maintenance using AWS Lambda and other managed cloud services.项目地址: https://gitcode.com/GitHub_Trending/se/serverless创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表