2016-06-20 108 views
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

希望這有助於。