2017-05-29 18 views
0

TLは、DRは、私は、キー 'ID' とGSI 'ATYPE-インデックス' でDynamoDBのテーブル 'NP' を持っているAWSのAPIゲートウェイソート/シーケンスのAWS APIゲートウェイ出力

からAPIの出力をソートするために探して。ソートキーはありません。

また、私は、APIゲートウェイマッピングテンプレート

{ 
    "TableName": "NP", 
    "IndexName": "atype-index", 
    "KeyConditionExpression": "atype = :v1", 
    "ExpressionAttributeValues": { 
     ":v1": { 
      "S": "$input.params('atype')" 
     } 
    } 
} 

マッピングテンプレートは、指定された文字列と一致するGSIキーでテーブル内のすべての値を抽出しますを有しています。しかし、値が順不同で抽出され、例えば、APIは次のようになります。

{ 
    "Count": 3, 
    "Items": [ 
    { 
     "apiUrl": { 
     "S": “ee” 
     }, 
     "webTitle": { 
     "S": “dd” 
     }, 
     "atype": { 
     "S": “type” 
     }, 
     "id": { 
     "S": "1a" 
     } 
    }, 
    { 
     "apiUrl": { 
     "S": “dd” 
     }, 
     "webTitle": { 
     "S": “cc” 
     }, 
     "atype": { 
     "S": "atype" 
     }, 
     "id": { 
     "S": “3a” 
     } 
    }, 
    { 
     "apiUrl": { 
     "S": “cc” 
     }, 
     "webTitle": { 
     "S": “bb” 
     }, 
     "atype": { 
     "S": "atype" 
     }, 
     "id": { 
     "S": “2a” 
     } 
    } 
    ], 
    "ScannedCount": 3 
} 

どのように私は、例えば、キー「apiURL」で上記の出力をソートしますか?

答えて

1

あなたが説明したことは、(スキャンではなく)クエリAPIを使用していると仮定すると、ソートキーが達成するものとまったく同じです。

ソートキーを追加すると、特定のパーティションキーを照会するときに結果がソートキーに基づいてソートされます。

編集:マッピングテンプレートのAPI GWレイヤでソートを行う方法はありません。

API GWとDDBの間に、ラムダ関数を置くことができます。それ以外の場合は、クライアント側で並べ替える方がよいでしょう。