You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Docker部署含Bedrock-Runtime的AWS应用出现UnknownServiceError求助

解决Docker部署中UnknownServiceError: Unknown service: 'bedrock-runtime'问题

核心原因

bedrock-runtime是AWS较新的服务,boto3必须搭配对应版本的botocore才能识别该服务。你的本地环境botocore版本足够新,但Docker容器内的依赖版本不匹配,导致无法识别服务。

解决步骤

1. 锁定兼容的依赖版本

bedrock-runtime要求最低版本:

  • boto3 >= 1.28.0
  • botocore >= 1.31.0

直接在requirements.txt里指定匹配的版本组合(建议boto3和botocore版本保持一致):

boto3==1.34.0
botocore==1.34.0

2. 修正Dockerfile的依赖安装逻辑

  • 避免使用过于老旧的基础镜像,换成较新的稳定版,比如python:3.11-slim
  • 安装依赖前清理pip缓存,确保拉取指定版本:
FROM python:3.11-slim

WORKDIR /app

COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt

COPY . .

CMD ["python", "your_script.py"]

3. 验证容器内的依赖版本

进入运行中的容器,检查实际安装的版本是否符合要求:

docker exec -it <你的容器ID> bash
pip show boto3 botocore

确认两个版本都达标,且版本号一致。

4. 手动指定服务端点(备选方案)

若版本没问题仍报错,初始化bedrock-runtime客户端时手动指定端点:

import boto3

client = boto3.client(
    'bedrock-runtime',
    region_name='us-east-1',  # 替换为你使用的区域
    endpoint_url='https://bedrock-runtime.us-east-1.amazonaws.com'
)

5. 检查容器的AWS区域配置

容器内AWS区域未正确设置也可能导致服务识别失败,可通过环境变量指定:
在Dockerfile中添加:

ENV AWS_DEFAULT_REGION=us-east-1

或运行容器时传递参数:

docker run -e AWS_DEFAULT_REGION=us-east-1 你的镜像名

关键提醒

  • 不要单独升级boto3,botocore是处理服务定义的核心组件,必须同步升级
  • 避免使用基础镜像自带的旧版boto3,确保通过pip安装指定的版本

内容的提问来源于stack exchange,提问作者Vamsee Krishna

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.01 19:22:46