0

我正在与dynamodb插入并从发电机检索记录。请注意,当我插入记录到发电机分贝它工作正常,但是当我尝试列出任何项目或检索任何项目从dynamodb它返回没有结果发现在aws api网关中无法使用aws代理获取物品表单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. 在积分请求

    >体映射模板添加的应用程序/ JSON,然后将JSON代码

    { “表名”: “EMP”, “KeyConditionExpression”: “ID =:V1”, “ExpressionAttributeValues “:{ “:V1”:{ “S”: “$ input.params( 'ID')” }} } 然后 当我测试它,它不返回结果我想不通为什么,请帮助。

+0

您能否提供一个样本数据出现在'emp'表中? – notionquest

回答

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

希望这有助于。