2016-05-06 20 views
1

DynamoDBでNode js amazonのスタートガイドと競合しようとしています。私は、テーブルを作成しようとしているが、ここでエラーですよIました:私はしましたDynamoDBとノードJ:予期せぬトークンh

var AWS = require("aws-sdk"); 
AWS.config.loadFromPath('./.aws/credentials.json'); 

AWS.config.update({ 
    region: "us-west-2", 
    endpoint: "http://localhost:8000" 
}); 

var dynamodb = new AWS.DynamoDB(); 

var params = { 
    TableName : "Movies", 
    KeySchema: [  
     { AttributeName: "year", KeyType: "HASH"}, //Partition key 
     { AttributeName: "title", KeyType: "RANGE" } //Sort key 
    ], 
    AttributeDefinitions: [  
     { AttributeName: "year", AttributeType: "N" }, 
     { AttributeName: "title", AttributeType: "S" } 
    ], 
    ProvisionedThroughput: {  
     ReadCapacityUnits: 10, 
     WriteCapacityUnits: 10 
    } 
}; 

dynamodb.createTable(params, function(err, data) { 
    if (err) { 
     console.error("Unable to create table. Error JSON:", JSON.stringify(err, null, 2)); 
    } else { 
     console.log("Created table. Table description JSON:", JSON.stringify(data, null, 2)); 
    } 
}); 

:私は(アマゾンスタートガイドから直接取得)、次のノードを実行している

Unable to create table. Error JSON: { 
    "message": "Unexpected token h", 
    "code": "SyntaxError", 
    "time": "2016-05-06T16:59:50.411Z", 
    "statusCode": 200, 
    "retryable": false, 
    "retryDelay": 0 

このチュートリアルに基づいてポート8080でローカルWebサーバーを実行してください:https://www.youtube.com/watch?v=pU9Q6oiQNd0。それは正常に動作しているようです。

ありがとうございました。

+0

私は './ AWS/credentials.json'が有効なJSON(二重引用符で囲まれたプロパティ名など) –

+0

のおかげであることを確認したいです。 {"accessKeyId": "XXXXXXXXXXXXX"、 "secretAccessKey": "XXXXXXXXXXXXXXXXXXXXXXX"、 "地域": "us-east-1"} –

答えて

4

AWSエンドポイントをhttp://localhost:8000に設定しています。これにより、AWS SDKはAWS APIコールをAmazonのサーバーではなくそのURLに送信します。あなたはそれがあなたが望んでいると確信していますか? DynamoDBのバージョンをローカルで実行している場合を除き、それぞれのDynamoDBリクエストごとに独自のサーバーに要求し、その結果をJSONとして解釈しようとします。

SDKは通常、リージョンに基づいてエンドポイントを正しく設定するため、通常は手動で設定する必要はありません。エンドポイントの設定なしでAWSを設定してみてください。

AWS.config.update({ 
    region: "us-west-2" 
}); 
+1

ありがとうataylor。ええ、私はDynamoDBをポート8000​​でローカルに実行しています。私は、アマゾンのチュートリアルの手順に従っています。 –

関連する問題