400 {"error":{"type":"<nil>","message":"InvokeModel: operation error Bedrock Run...
🚨 错误信息
🤖 AI解决方案
代码糕手 - 专业报错分析助理
分析流程
1. 错误翻译
原文:ValidationException: ....*.signature: Field required
译文:验证异常:....*.signature:字段必填
2. 原因分析
这是一个AWS Bedrock API调用错误,具体为签名验证失败。错误代码400表示客户端请求无效。
根本原因:
signature字段错误位置:
InvokeModel操作3. 解决方案
修复步骤:
javascript
// 示例:使用AWS SDK v3的正确调用方式
import { BedrockRuntimeClient, InvokeModelCommand } from "@aws-sdk/client-bedrock-runtime";// 确保AWS凭证已正确配置
const client = new BedrockRuntimeClient({
region: "us-east-1", // 根据实际区域修改
credentials: {
accessKeyId: process.env.AWS_ACCESS_KEY_ID,
secretAccessKey: process.env.AWS_SECRET_ACCESS_KEY,
sessionToken: process.env.AWS_SESSION_TOKEN // 如果需要
}
});
// 构造请求时确保包含所有必需字段
const params = {
modelId: "anthropic.claude-3-sonnet-20240229-v1:0", // 示例模型ID
contentType: "application/json",
accept: "application/json",
body: JSON.stringify({
// 你的请求体内容
prompt: "Hello, how are you?",
max_tokens: 100
})
};
try {
const command = new InvokeModelCommand(params);
const response = await client.send(command);
console.log("Success:", response);
} catch (error) {
console.error("Error:", error);
}
4.️ 预防措施
- 将AWS凭证存储在环境变量中,不要硬编码在代码里
- 使用AWS CLI配置凭证:
aws configure推荐工具:
---
注意: 请确保您的AWS IAM用户/角色有调用Bedrock服务的权限,并且已在该区域启用Bedrock服务。