执行DynamoDbClient.executeStatement触发未知操作请求异常,求排查
问题排查与解决
错误原因:构建
ExecuteStatementRequest时,parameters()方法传入的是单个AttributeValue对象att1,但该方法要求传入List<AttributeValue>类型参数。参数类型不匹配导致请求格式错误,触发DynamoDB 400错误。修复后的代码:
String sqlStatement = "SELECT * FROM policies WHERE pk=?"; List<AttributeValue> parameters = new ArrayList<>(); AttributeValue att1 = AttributeValue.builder() .s(policyIds.stream().findFirst().get()) .build(); parameters.add(att1); // 传入parameters列表而非单个对象 ExecuteStatementRequest request = ExecuteStatementRequest.builder() .statement(sqlStatement) .parameters(parameters) .build(); ExecuteStatementResponse response = dynamoDbClient.executeStatement(request);
- 额外提示:若使用旧版AWS SDK,需确认客户端是否支持
executeStatement操作(该操作属于DynamoDB PartiQL功能,需SDK版本支持且配置对应权限)。
内容的提问来源于stack exchange,提问作者user1180969
相关产品推荐
相关产品推荐

