Bedrock Runtime: InvokeModel, https response error StatusCode: 400, RequestID: 5...

2026年07月12日 05:48 29.40 秒 success

错误信息

InvokeModel: operation error Bedrock Runtime: InvokeModel, https response error StatusCode: 400, RequestID: 53bc3f93-3c32-4e36-8b4f-f66c622b3960, ValidationException: The provided model identifier is invalid.

AI 解决方案

🔍 错误分析

1. 🌐 错误翻译


原文:InvokeModel: operation error Bedrock Runtime: InvokeModel, https response error StatusCode: 400, RequestID: 53bc3f93-3c32-4e36-8b4f-f66c622b3960, ValidationException: The provided model identifier is invalid.
译文:InvokeModel:操作错误 Bedrock 运行时:调用模型,https 响应错误 状态码:400,请求ID:53bc3f93-3c32-4e36-8b4f-f66c622b3960,验证异常:提供的模型标识符无效。

2. 🎯 原因分析


  • 根本原因:调用 Amazon Bedrock Runtime 的 InvokeModel 接口时,传入的模型标识符(model identifier)不符合要求,导致验证失败

  • 错误位置:出现在向 Bedrock 服务发送 HTTP 请求的阶段,具体是请求参数中的模型标识符无效

  • 上下文:该错误通常发生在使用 AWS Bedrock API 调用指定 AI 模型时,模型 ID 格式错误、模型不存在,或使用了错误的模型标识符
  • 3. 💡 解决方案


    检查并更正模型标识符,确保其为 Amazon Bedrock 支持的合法模型 ID(如 amazon.titan-embed-text-v1amazon.titan-text-express-v1 等),示例修复代码如下:

    ``语言
    import boto3
    from botocore.exceptions import ClientError

    初始化 Bedrock 客户端


    bedrock = boto3.client(
    service_name='bedrock-runtime',
    region_name='us-east-1' # 替换为实际区域
    )

    合法的 Bedrock 模型标识符(根据需求调整)


    model_id = "amazon.titan-text-express-v1"

    try:
    response = bedrock.invoke_model(
    modelId=model_id,
    body='{"inputText": "测试文本"}',
    contentType='application/json',
    accept='application/json'
    )
    print("调用成功:", response)
    except ClientError as e:
    print("调用失败:", e.response['Error']['Message'])
    `

    4. 🛡️ 预防措施


  • 核对模型列表:调用前先查询 AWS 官方文档或调用 ListFoundationModels 接口,获取当前区域支持的合法模型标识符,避免硬编码错误的 ID

  • 参数校验前置:在代码中增加对模型标识符的格式校验,例如检查是否符合 AWS 模型 ID 的命名规范(如以 amazon.anthropic.ai21. 等前缀开头),确保参数合法后再发起请求

  • 使用 AWS 工具辅助:推荐通过 AWS CLI 或 Bedrock 控制台查询支持的模型,或使用 AWS SDK 的 DescribeFoundationModel` 接口验证模型标识符的有效性