我正在使用dynamodb来插入和检索发电机的记录。请注意,当我将记录插入发电机数据库时它工作正常,但当我尝试列出任何项目或从dynamodb检索任何项目时它返回未找到结果
用于检索记录
创建了一个与api网关具有信任关系的iam角色。并拥有托管策略:AmazonAPIGatewayInvokeFullAccess,AmazonDynamoDBFullAccess,APIGatewayAWSProxyExecPolicy,AmazonAPIGatewayAdministrator。
创建了一个名为emp的表,其中包含字段ID和名称。
创建了一个名为emp的api网关,它有资源/员工。并有方法发布和获取。插入和获取显示记录。
然后在URL查询字符串参数中在方法请求中添加了id。
然后也在整合请求> URL查询字符串参数已添加> ID和method.request.querystring.id。
> body mapping模板添加了application / json,然后是json代码
{ " TableName":" emp", " KeyConditionExpression":" ID =:v1", " ExpressionAttributeValues":{ ":v1":{ " S":" $ input.params(' ID')" } } } 然后,当我测试它时,它返回没有结果我无法弄清楚为什么请帮助。
答案 0 :(得分:2)
我不是这方面的专家,但我可以看到两个问题。
首先在DynamoDB服务代理设置中,HTTP方法需要POST,因为您正在向DynamoDB API发送请求,并且它与您使用GetItem方法的事实无关。
其次,您的身体映射模板使用DynamoDB查询API中使用的KeyconditionExpression,但不使用GetItem。 GetItem需要指定一个Key,例如:http://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_GetItem.html#API_GetItem_Examples
希望这有帮助。