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

2026年07月21日 02:52 22.66 秒 success

错误信息

InvokeModel: operation error Bedrock Runtime: InvokeModel, https response error StatusCode: 400, RequestID: 4df49d0e-c154-4566-b948-ff0add93fd0f, ValidationException: data retention mode 'default' is not available for this model

AI 解决方案

🔍 错误分析

1. 🌐 错误翻译


原文:InvokeModel: operation error Bedrock Runtime: InvokeModel, https response error StatusCode: 400, RequestID: 4df49d0e-c154-4566-b948-ff0add93fd0f, ValidationException: data retention mode 'default' is not available for this model
译文:InvokeModel:操作错误 Bedrock 运行时:InvokeModel,HTTP响应错误状态码:400,请求ID:4df49d0e-c154-4566-b948-ff0add93fd0f,验证异常:数据保留模式'default'对此模型不可用

2. 🎯 原因分析


  • 根本原因:向Bedrock模型发起InvokeModel调用时,使用了模型不支持的数据保留模式'default'

  • 具体位置:发生在Bedrock Runtime的InvokeModel操作中,属于请求参数验证错误

  • 上下文:该模型不支持用户指定的data retention mode(数据保留模式)为'default',导致API返回400状态码
  • 3. 💡 解决方案


    需要检查并修改调用Bedrock模型时的数据保留模式参数,使用该模型支持的合法模式。以下是Python boto3调用的修复示例:
    import boto3
    
    bedrock = boto3.client(service_name='bedrock-runtime')
    
    # 修复前 - 错误使用'default'模式
    # response = bedrock.invoke_model(
    #     modelId='amazon.titan-text-express-v1',
    #     body='{"inputText":"test"}',
    #     contentType='application/json',
    #     accept='application/json',
    #     inferenceConfig={'dataRetentionMode': 'default'}  # 错误的参数
    # )
    
    # 修复后 - 移除不支持的dataRetentionMode或使用模型支持的模式
    response = bedrock.invoke_model(
        modelId='amazon.titan-text-express-v1',
        body='{"inputText":"test"}',
        contentType='application/json',
        accept='application/json'
        # 移除不支持的inferenceConfig参数
    )
    

    或者如果模型支持其他模式,替换为支持的模式:

    # 假设模型支持'off'或'custom'模式(需查看模型文档确认)
    response = bedrock.invoke_model(
        modelId='模型ID',
        body='{"inputText":"test"}',
        contentType='application/json',
        accept='application/json',
        inferenceConfig={'dataRetentionMode': 'off'}  # 使用模型支持的模式
    )
    

    4. 🛡️ 预防措施


  • 参数验证前置:调用Bedrock API前,务必查阅目标模型的官方文档,确认支持的数据保留模式、推理配置等参数范围

  • 文档参考:通过AWS Bedrock模型文档查询具体模型支持的参数配置,避免直接使用默认或猜测的参数值

  • 错误码处理:在代码中增加对400状态码和ValidationException的捕获处理,快速定位参数问题并输出清晰的错误提示

  • 环境测试:在测试环境中验证参数合法性后再部署到生产环境,减少因参数错误导致的生产故障