2017-01-31 1 views
0

Anschluss habe ich eine Datei api.js mit Typoskript, um dem Namen eine DynamoDB Tabelle zu scannen wie folgt:Credential Fehler in Knoten App, wenn sie DynamoDB

api.js

var AWS = require('aws-sdk'); 

AWS.config.region = "us-east-1"; 

var sns = new AWS.SNS(); 
var ddb = new AWS.DynamoDB(); 

var params = { 
    TableName: "Client" 
}; 

// Get all posts 
router.get('/posts', (req, res) => { 

    ddb.scan(params, onScan); 

    function onScan(err, data) { 
     if (err) { 
      console.error("Unable to scan the table. Error JSON:", JSON.stringify(err, null, 2)); 
     } else { 
      // print all the movies 
      console.log("Scan succeeded."); 
      console.log(data) 
     } 
    } 
}); 

Aber bevor ich die Informationen weitergegeben habe, habe ich versucht, es zu testen. Wenn ich node server.js erhalte ich die folgenden credetial Fehler:

API running on localhost:3000 
Unable to scan the table. Error JSON: { 
    "message": "Missing credentials in config", 
    "code": "CredentialsError", 
    "time": "2017-01-31T21:02:59.435Z", 
    "retryable": true, 
    "originalError": { 
    "message": "Could not load credentials from any providers", 
    "code": "CredentialsError", 
    "time": "2017-01-31T21:02:59.435Z", 
    "retryable": true, 
    "originalError": { 
     "message": "Connection timed out after 1000ms", 
     "code": "TimeoutError", 
     "time": "2017-01-31T21:02:59.435Z", 
     "retryable": true 
    } 
    } 
} 

Wie kann ich die Anmeldeinformationen für die Konfiguration und was ist das beste Setup für beide Entwicklung/localhost und Produktion der Anwendung, um Verbindung mit den richtigen Anmeldeinformationen zu der Tabelle, die ich habe?

Antwort

1

Siehe die aws-docs für die verschiedenen Möglichkeiten, wie Sie Ihre Anmeldeinformationen einrichten können.

Here are the ways you can supply your credentials in order of recommendation:

Loaded from AWS Identity and Access Management (IAM) roles for Amazon EC2 (if running on Amazon EC2)

Loaded from the shared credentials file (~/.aws/credentials)

Loaded from environment variables

Loaded from a JSON file on disk

Caution

While it is possible to do so, we do not recommend hard-coding your AWS credentials in your application. Hard-coding credentials poses a risk of exposing your access key ID and secret access key.

Wir verwenden in der Regel die gemeinsamen Credentials-Datei (~/.aws/Anmeldeinformationen) für die lokale Entwicklung und dann eine IAM-Rolle für EC2-Instanzen (Bühne/Produktion)

Die aws-sdk für Umwelt prüfen wird Variablen (AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY) und die Berechtigungsnachweisdatei.

+0

Danke für die Hilfe. Es funktionierte wie ein Zauber. – cacev000

Verwandte Themen