不买服务器也能跑 AI?Lambda + Bedrock 这套组合真香

上周有个朋友问我:"想做个 AI 问答工具,但不想搞服务器,有没有啥轻量方案?"

有。Lambda + Bedrock,两个服务一组合,连 Docker 都不用装。

先看效果

bash 复制代码
curl -X POST https://xxx.execute-api.us-east-1.amazonaws.com/ask \
  -H "Content-Type: application/json" \
  -d '{"question": "解释一下什么是 Serverless"}'

3 秒后就能拿到 Claude 的回答。整个后端就一个 Lambda 函数,50 行 Python。

架构就这么简单

scss 复制代码
请求 → API Gateway → Lambda (Python) → Bedrock (Claude) → 响应

说白了就是:API Gateway 接请求,Lambda 跑逻辑,Bedrock 出模型。三个积木一搭,完事。

核心代码

整个 Lambda 函数长这样:

python 复制代码
import json, boto3

bedrock = boto3.client('bedrock-runtime', region_name='us-east-1')

def lambda_handler(event, context):
    body = json.loads(event.get('body', '{}'))
    question = body.get('question', '')
    
    if not question:
        return {'statusCode': 400, 'body': json.dumps({'error': '问题不能为空'})}
    
    resp = bedrock.invoke_model(
        modelId='anthropic.claude-3-5-sonnet-20241022-v2:0',
        contentType='application/json',
        accept='application/json',
        body=json.dumps({
            'anthropic_version': 'bedrock-2023-05-31',
            'max_tokens': 2048,
            'messages': [{'role': 'user', 'content': question}]
        })
    )
    
    result = json.loads(resp['body'].read())
    return {
        'statusCode': 200,
        'body': json.dumps({'answer': result['content'][0]['text']})
    }

没什么花活,就是拿问题 → 调模型 → 返回答案。

几个容易翻车的地方

1. 超时问题

Lambda 默认 3 秒超时,但 Claude 响应有时候要 10 秒+。刚跑的时候 100% 超时,改成 30 秒就好了。

2. IAM 权限的 ARN 写法

Bedrock 模型资源的 ARN 有点特殊------账号字段是空的:

ruby 复制代码
arn:aws:bedrock:us-east-1::foundation-model/anthropic.claude-3-5-sonnet-*

注意那两个连续的冒号,别手滑加了账号 ID。

3. 不是所有区域都有 Bedrock

如果你的 Lambda 在东京或新加坡,Bedrock 的 Claude 模型可能不在当地。跨区域调用要加个 region_name='us-east-1',多 50-100ms 延迟,AI 场景下基本无感。

4. 冷启动

第一次调用会慢(3-5 秒冷启动 + 模型响应时间)。解决方案:

  • 预置并发(Provisioned Concurrency)保持函数温热
  • 或者简单粗暴------用 CloudWatch Events 每 5 分钟 ping 一次

跑了一个月的账单

项目 花费
Lambda(每天约 100 次调用) $0.06
API Gateway $0.10
Bedrock Claude 调用 按 token 另算
合计(不含模型费) ~$0.16/月

对比 EC2 跑 FastAPI 的方案,一个月省了 $30。

流式响应(进阶)

等 10 秒才看到完整回答,用户体验不好。真想做流式,得用 Lambda Function URL + Response Streaming:

python 复制代码
# 需要配置 Lambda Function URL,invoke mode 选 RESPONSE_STREAM
def handler(event, context):
    # 使用 invoke_model_with_response_stream
    response = bedrock.invoke_model_with_response_stream(
        modelId='anthropic.claude-3-5-sonnet-20241022-v2:0',
        body=json.dumps({...})
    )
    for chunk in response['body']:
        yield chunk  # 边生成边推

这块展开讲篇幅太长了,后面单独写一篇。

什么场景适合用

适合:内部工具、低频问答、原型验证、Hackathon

不适合:高并发实时对话(WebSocket 场景建议 ECS)、需要 GPU 的自定义模型推理

一句话总结

想低成本跑个 AI 功能?Lambda + Bedrock,50 行代码,一个月几毛钱。别折腾服务器了。

以上代码基于亚马逊云科技 Lambda Python 3.12 运行时验证通过。

相关推荐
亚马逊云开发者7 小时前
我把 Claude Code 的 Token 费砍了 70%,只用了 SageMaker + 一个路由 Hook
aws
圣殿骑士-Khtangc9 小时前
Amazon CodeWhisperer 超详细使用教程:AWS 云原生 AI 编程助手上手指南
人工智能·ai编程·aws·编程助手·codewhisperer
翼龙云_cloud1 天前
亚马逊云代理商:如何在 AWS Lightsail 上一键部署 OpenClaw 私有化 AI 助手?
人工智能·云计算·aws·openclaw
Lim小刘2 天前
AWS IAM Identity Center 实战操作:从启用、用户、权限集到 SSO 登录
云计算·aws·云安全·sso
运维行者_3 天前
使用 Applications Manager 实现 AWS 云监控:保障业务应用高效运行
大数据·运维·服务器·网络·数据库·云计算·aws
admin and root3 天前
AWS S3 对象存储攻防&云安全之OSS存储桶漏洞
微信小程序·小程序·渗透测试·云计算·aws·src·攻防演练
共绩算力3 天前
2026算力租赁平台深度测评:共绩算力与海外大厂CoreWeave、AWS同台竞技
人工智能·云计算·aws·共绩算力
DexterLien4 天前
EC2 Windows 对 EBS 根卷进行缩容
windows·aws·ec2
亚马逊云开发者5 天前
在 IDEA 里装个 AI 助手:Amazon Q Developer 到底好不好用?
aws
亚马逊云开发者5 天前
用 Bedrock AgentCore SDK 把 OpenClaw Agent 部署到 AWS 托管运行时:从本地开发到生产上线全流程
云计算·aws