无法在aws api网关中使用aws代理获取项目表格dynamodb?

时间:2016-06-20 10:38:04

标签: json amazon-web-services amazon-dynamodb aws-api-gateway

我正在使用dynamodb来插入和检索发电机的记录。请注意,当我将记录插入发电机数据库时它工作正常,但当我尝试列出任何项目或从dynamodb检索任何项目时它返回未找到结果

用于检索记录

  1. 创建了一个与api网关具有信任关系的iam角色。并拥有托管策略:AmazonAPIGatewayInvokeFullAccess,AmazonDynamoDBFullAccess,APIGatewayAWSProxyExecPolicy,AmazonAPIGatewayAdministrator。

  2. 创建了一个名为emp的表,其中包含字段ID和名称。

  3. 创建了一个名为emp的api网关,它有资源/员工。并有方法发布和获取。插入和获取显示记录。

  4. 为get方法选择了aws服务代理 enter image description here

  5. 然后在URL查询字符串参数中在方法请求中添加了id。

  6. 然后也在整合请求> URL查询字符串参数已添加> ID和method.request.querystring.id。

  7. 集成请求中的
  8. > body mapping模板添加了application / json,然后是json代码

    {     " TableName":" emp",     " KeyConditionExpression":" ID =:v1",     " ExpressionAttributeValues":{         ":v1":{             " S":" $ input.params(' ID')"         }     } } 然后,当我测试它时,它返回没有结果我无法弄清楚为什么请帮助。

1 个答案:

答案 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

希望这有帮助。