亚马逊dynamodb通过休息api

时间:2012-07-04 10:00:00

标签: amazon-dynamodb

这是我们需要使用dynamodb rest api

在标头中发送的必需标头
'x-amz-date': 'Mon, 16 Jan 2012 17:50:52 GMT',
'x-amzn-authorization': 'AWS3 AWSAccessKeyId=TemporaryAccessKeyID,Algorithm=HmacSHA256,SignedHeaders=Host;x-amz-date;x-amz-target;x-amz-security-token,Signature=*Signature Value*=',
'Date': 'Mon, 31 Oct 2011 17:49:52 GMT',
'x-amz-target': 'DynamoDB_20111205.GetItem',
'x-amz-security-token': '*Token Value*',
'Content-Type': 'application/x-amz-json-1.0',
'Content-Length': '135',
'Connection': 'Keep-Alive',
'User-Agent': 'aws-sdk-java/1.2.10 Windows_7/6.1 Java_HotSpot(TM)_64-Bit_Server_VM/20.2-b06',
}

我可以知道我们需要通过http rest api为发电机传递所需的所有参数吗...我需要从dynamodb数据库中获取数据???任何人都可以建议所需的标题link

1 个答案:

答案 0 :(得分:2)

问题问题还不到一年,所以我希望现在回答还为时不晚。 : - )

找出所需HTTP标头字段的最佳方法之一是使用AWS SDK。 AWS建议采用此方法。 (根据@AWS家伙的论坛帖子)你可以:

  1. 为AWS的软件包(例如com.amazonaws)和可选的Apache HTTP Client(例如org.apache.http)启用DEBUG日志以查看。配置log4j的一种简单方法。就个人而言,我使用slf4j-over-jcl然后配置logback.xml
  2. 编写一个请求DynamoDB的简单程序,确保结果正确,并查看日志
  3. 例如,在ListTables请求中,使用以下标题:

    • 内容长度
    • 内容类型
    • 主持人
    • 用户代理
    • X-Amz-Date
    • X-AMZ-目标

    请注意,HTTP标头应大写。日志还显示转换为小写的签名。 " Content-Length的"和"用户代理"是可选的,其他字段是必填字段。 "内容类型"可以" application / json"如果你不喜欢" x-amz-json-1.0"。

    在我看来,实现我们自己的REST客户端有两个棘手的部分,一个是签名权,另一个是正确的头。对于签名部分,AWS提供了一个测试套件,允许我们验证我们的签名实现。