Kann jemand erklären, wie ein fehlender Konfigurationsfehler mit Node.js behoben werden kann? Ich habe alle Beispiele von der aws-Dokumentseite befolgt, aber ich erhalte immer noch diesen Fehler, egal was passiert.
{ [ConfigError: Missing region in config]
message: 'Missing region in config',
code: 'ConfigError',
time: Wed Jun 24 2015 21:39:58 GMT-0400 (EDT) }>{ thumbnail:
{ fieldname: 'thumbnail',
originalname: 'testDoc.pdf',
name: 'testDoc.pdf',
encoding: '7bit',
mimetype: 'application/pdf',
path: 'uploads/testDoc.pdf',
extension: 'pdf',
size: 24,
truncated: false,
buffer: null } }
POST / 200 81.530 ms - -
Hier ist mein Code:
var express = require('express');
var router = express.Router();
var AWS = require('aws-sdk');
var dd = new AWS.DynamoDB();
var s3 = new AWS.S3();
var bucketName = 'my-bucket';
AWS.config.update({region:'us-east-1'});
(...)
javascript
node.js
amazon-web-services
aws-sdk
Anejah Daniels
quelle
quelle
us-east-1
für alle Ressourcen so eingestellt, dass beim Erstellen des Objekts eine ressourcenspezifische Region verwendet wird.Ich hatte das gleiche Problem "Fehlende Region in Konfiguration" und in meinem Fall war es so, dass das Node SDK im Gegensatz zur CLI oder zum Python SDK nicht aus der
~\.aws\config
Datei liest .Um dies zu lösen, haben Sie drei Möglichkeiten:
Programmieren Sie es programmgesteuert (fest codiert):
AWS.config.update({region:'your-region'});
Verwenden Sie eine Umgebungsvariable. Während die CLI verwendet
AWS_DEFAULT_REGION
, verwendet das Node SDKAWS_REGION
.Laden aus einer JSON-Datei mit
AWS.config.loadFromPath('./config.json');
JSON-Format:
quelle
AWS_DEFAULT_REGION
großes Lob für die Hervorhebung, die CLI und Sdk verwendetAWS_REGION
. Das ist etwas nicht Offensichtliches und etwas, das mich in der Vergangenheit gebissen hat. Es wird am unteren Rand des AWS SDK für Javascript-Entwicklerhandbuchs hervorgehoben - Festlegen der Region, aber es ist nicht offensichtlichAWS_SDK_LOAD_CONFIG
auftrue
Wenn Sie mit AWS CLI arbeiten, ist wahrscheinlich eine Standardregion in ~ / .aws / config definiert. Leider lädt AWS SDK für JavaScript es nicht standardmäßig. Um es zu laden, definieren Sie env var
Siehe https://github.com/aws/aws-sdk-js/pull/1391
quelle
set AWS_ACCESS_KEY_ID="KEY ID GOES HERE" set AWS_SECRET_ACCESS_KEY="SECRET KEY GOES HERE" set AWS_REGION="us-east-1"
Sie können die Region beim Erstellen der Dynamodb-Verbindung angeben (haben s3 noch nicht ausprobiert, aber das sollte auch funktionieren).
quelle
var dynamodb = new AWS.DynamoDB({ 'region': 'eu-west-1', 'endpoint': 'http://localhost:8000' }); var docClient = new AWS.DynamoDB.DocumentClient({"service": dynamodb});
Sollte funktionieren, ist es in der Dokumentation// AWS-Anmeldeinformationen hier wie folgt zuweisen:
quelle
Ich habe Ihren Code durchgesehen und hier stellen Sie eine Verbindung zu AWS-Diensten her, bevor Sie die Region festlegen. Daher empfehle ich Ihnen, zuerst die Region zu aktualisieren und dann eine Verbindung zu Diensten herzustellen oder eine Instanz davon wie unten zu erstellen.
quelle
Gleicher Fehler für mich:
Nach vielen Versuchen habe ich mich für Folgendes entschieden:
OPTION 1
AWS_REGION
Umgebungsvariable nur im lokalen System aufus-east-1
(Beispiel)Für Linux:
Für Windows
siehe: https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-envvars.html
Außerdem muss kein Code verwendet werden, zum Beispiel:
AWS.config.update(...)
ist nicht erforderlichAWS.S3()
usw. funktionieren diese problemlos. Anstelle von S3 kann es auch einen aws-Service gebenIn seltenen Fällen, wenn irgendwo im Code einige Standardeinstellungen angenommen werden und Sie gezwungen sind, eine Region zu senden, verwenden Sie
{'region': process.env.AWS_REGION})
OPTION 2
Anstelle von Umgebungsvariablen ist eine andere Möglichkeit die AWS CONFIG-Datei:
Unter Linux können Sie folgende Dateien erstellen:
Siehe https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-files.html
quelle
environment variable
? was meinst dulocal system
?Dies ist möglicherweise nicht der richtige Weg, aber ich habe alle meine Konfigurationen in einer separaten JSON-Datei. Und das behebt das Problem für mich
Um die AWS-Konfiguration zu laden, gehe ich folgendermaßen vor:
config.aws ist nur eine JSON-Datei.
quelle
Sie können ein gemeinsames Modul erstellen und es basierend auf der gewünschten Region verwenden
und verbrauchen es als,
Die Idee ist, die AWS-Konfiguration zu aktualisieren, bevor s3 instanziiert wird
quelle