docker 部署Bedrock Connector
一、Bedrock Connector 简单含义
-
AWS 场景(AI / 大模型调用)
在 Amazon Bedrock 服务里,Bedrock Connector 指的是“连接器”组件——一段预先封装好的配置模板,用来把外部应用(如 OpenSearch、UiPath、Camunda、自研系统)安全地连到 Bedrock 的 LLM API,实现签名鉴权、请求转发、结果回传等功能。
• 典型形态:一个 JSON/YAML 描述文件,内部写好 AWS SigV4 签名、目标 endpoint、模型 ID(如 Claude 3 Sonnet)、超时重试策略等。
• 用例:在 OpenSearch 里注册 Bedrock Connector 后,即可用自然语言对日志做根因分析;在 UiPath 里拖一个“Bedrock 活动”就能让机器人调用大模型生成文本或总结工单 -
在 Claude 3 发布之后,其强大的多模态推理、视觉能力、翻译、总结、写作、编码等能力,再次激发生成式 AI 的热潮。Amazon Bedrock 也是首个 Claude 3 全托管且正式可用的服务。
-
伴随越来越多的业务场景落地,我们也收集了很多针对 Bedrock Claude 3 的需求和反馈。
我们开发了 Bedrock Connector 并开源,供大家测试使用,和代码参考。Bedrock Connector 主要解决以下几个需求:
- 多租户管理,通过 API_KEY & Host 方式使用 Claude
- 针对多租户的计费,和费用限额,预充值管理
- 兼容更多的客户端工具的访问方式,如以下常见客户端
- ChatHub
- AIChatOne
- OpenAI Translator
- siders
二、快速部署
1. 准备一台服务器来托管连接器
在 AWS 或任何其他支持 docker 的服务器上启动 EC2。
yum install -y yum-utils device-mapper-persistent-data lvm2
sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
cat /etc/os-release
ls -la /etc/yum.repos.d/
sudo yum update -y
sudo yum install -y docker
sudo systemctl daemon-reload
sudo systemctl restart docker
docker ps
2. 使用 docker 运行 Postgres
使用以下 shell 命令启动一个 docker 容器来托管 postgres。请使用您自己的密码重新连接
然后创建一个使用以下命令命名的数据库。brconnector_db,
然后,在 postgres 的 SQL 命令行中,运行以下命令创建数据库 数据库名称不一定是,您可以使用所需的任何有效数据库名称。brconnector_db
如果您使用自己的数据库名称,请确保记住数据库名称并替换为您的数据库名称。brconnector_db
docker run --name postgres -e POSTGRES_PASSWORD=yy123456 -p 5432:5432 -d postgres
docker ps
docker exec -it postgres psql -U postgres
CREATE DATABASE brconnector_db;docker inspect postgres | grep IPAddress
记住这个ip地址,后续会使用到
3. 使用 docker 启动连接器服务
直接运行以下 docker 命令以启动连接器容器。
确保将访问密钥、密钥、区域的值替换为正确的值。
而且,重要的!将 ADMIN_API_KEY 的值替换为复杂键,而不是在示例中使用简单键。
docker run --name brconnector --restart always --pull always -p 8866:8866 -e AWS_ACCESS_KEY_ID=**** -e AWS_SECRET_ACCESS_KEY=***** -e AWS_DEFAULT_REGION=us-east-1 -e PGSQL_HOST=172.17.0.3 -e PGSQL_DATABASE=brconnector_db -e PGSQL_USER=postgres -e PGSQL_PASSWORD=yy123456 -e ADMIN_API_KEY=****** -d cloudbeer/sample-connector-for-bedrock
AKSK要从aws的服务先开启对某个模型的访问权限,其次这个用户或者角色要有访问这个服务的权限(AKSK),获取到就填写到上面的相应位置,pg数据库的地址也使用上面查出来的ip地址,数据库的名称也是之前创建的,adminapikey是自定义的
当容器不健康时候执行如下:
# 进入容器
docker exec -it brconnector bash
# 安装curl
apt-get update && apt-get install -y curl
4. 测试连接器服务
现在,您拥有第一个API_KEY为“br_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx”的管理员用户。
并将服务器导出端口 8866 到托管 EC2。
使用 using 命令API_Key测试服务器:curl
curl "http://localhost:8866/admin/api-key/list" -H "Authorization: Bearer br_yyuequiwehqkh"
#之前自定义的adminapikey
顺利的话:{"success":true,"data":{"items":[],"total":"0","limit":20,"offset":0}}
5. 创建第一个管理员用户
curl -X POST "http://localhost:8866/admin/api-key/apply" -H "Content-Type: application/json" -H "Authorization: Bearer br_yyuequiwehqkh" -d '{"name": "adminuser","group_id": 1,"role": "admin","email": "", "month_quota":"20"}'
# br_yyuequiwehqkh 最开始自定义的key
您将得到如下回复:这时候会给你返回一个真正的api_key
{"success":true,"data":{"id":1,"name":"adminuser","email":"","api_key":"br-someotherkeyvaluexxxxx","role":"admin","month_quota":"20.0000000000","balance":"0.0000000000"}}
为新用户录制新api_key,
此api_key可用于配置您的客户端进行聊天。
并且这个api_key可用于登录连接器的管理器WebUI来管理其他api_key。
6. 配置客户端以连接到连接器服务器
您现在可以通过 http://your-endpoint/manager 访问 BRConnector WebUI。
http://35.87.250.63:8866/manager
使用刚刚生成的 API 密钥登录并对其进行管理。输入 http://your-endpoint 作为管理者。
内置客户端访问地址为:http(s)://your-endpoint/brclient/
http://35.87.250.63:8866/brclient/
点击设置配置你的地址以及apikey就可以访问到模型了
也可以是postman调用试下:
这样部署就完成了,openai就直接能够通过apikey去调用对应的模型接口。