3

これは、dynamodbrestapiを使用してヘッダーで送信する必要のある必須ヘッダーです。

'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',
}

dynamoのhttprestapiを通過するために必要なすべてのパラメーターを知ることができます...dynamodbデータベースからデータをフェッチする必要がありますか?誰もが必要なヘッダーリンクを提案できますか

4

1 に答える 1

2

質問が出されてからまだ1年も経っていないので、答えるのに遅すぎないことを願っています. :-)

どの HTTP ヘッダー フィールドが必要かを確認する最良の方法の 1 つは、AWS SDK を使用することです。このアプローチは、AWS によって推奨されています。(@AWS 担当者によるフォーラムの投稿によると) 次のことができます。

  1. AWS のパッケージ (例: com.amazonaws) とオプションの Apache HTTP クライアント (例: org.apache.http) の DEBUG ログを有効にして表示します。log4j を構成する簡単な方法の 1 つです。個人的には、slf4j-over-jcl を使用してから、logback.xml を構成します。
  2. DynamoDB をリクエストする簡単なプログラムを作成し、結果が正しいことを確認し、ログを確認します。

たとえば、ListTables リクエストでは、次のヘッダーが使用されます。

  • コンテンツの長さ
  • コンテンツ タイプ
  • ホスト
  • ユーザーエージェント
  • X-Amz-Date
  • X-Amz-ターゲット

HTTP ヘッダーは大文字にすることに注意してください。ログには、小文字に変換された署名も表示されます。「Content-Length」と「User-Agent」はオプションで、他のフィールドは必須です。「x-amz-json-1.0」が気に入らない場合は、「Content-Type」を「application/json」にすることもできます。

独自の REST クライアントを実装するには、2 つのトリッキーな部分があるように思えます。1 つは署名を正しく行うこと、もう 1 つはヘッダーを正しく取得することです。署名部分については、AWS は署名の実装を検証できるテスト スイートを提供しています。

于 2013-06-21T16:29:55.450 に答える