web-dev-qa-db-ja.com

NodeでAmazonのDynamodb Localを使用するにはどうすればよいですか?

Amazonは Dynmodb製品のローカルシミュレーター を提供していますが、 例はPHPのみ です。

これらの例では、パラメーター「base_url」を渡して、ローカルDynamodbを使用していることを指定していますが、Nodeでこのエラーが返されます。

{ [UnrecognizedClientException: The security token included in the request is invalid.]
  message: 'The security token included in the request is invalid.',
  code: 'UnrecognizedClientException',
  name: 'UnrecognizedClientException',
  statusCode: 400,
  retryable: false }

NodeでDynamodb_localを動作させるにはどうすればよいですか?

36
danmcc

この ブログ投稿 に従ってDynamoDB Localをセットアップする必要があります。その後、このコードを使用するだけです。

var AWS= require('aws-sdk'),
dyn= new AWS.DynamoDB({ endpoint: new AWS.Endpoint('http://localhost:8000') });

dyn.listTables(function (err, data)
{
   console.log('listTables',err,data);
});
48
aaaristo

Nodeの場合、以下のようにしてください:

const AWS = require('aws-sdk');
const AWSaccessKeyId = 'not-important';
const AWSsecretAccessKey = 'not-important';      
const AWSregion = 'local';
const AWSendpoint = 'http://localhost:8000' // This is required
AWS.config.update({
    accessKeyId: AWSaccessKeyId,
    secretAccessKey: AWSsecretAccessKey,  
    region: AWSregion,
    endpoint: AWSendpoint
});

DynamodDBがポート8000​​で実行されていることを確認します。

0
Arshad

私がそれを行う方法は次のとおりです。同じコードがローカルまたはAWS内で機能します。

Env var DYNAMO_LOCAL_ENDPT="http://localhost:8000"の存在を単に活用する

import { DynamoDB, Endpoint } from 'aws-sdk';

const ddb = new DynamoDB({ apiVersion: '2012-08-10' });

if (process.env['DYNAMO_LOCAL_ENDPT']) {
  ddb.endpoint = new Endpoint(process.env['DYNAMO_LOCAL_ENDPT']);
}
0
rynop