Adakah yang bisa menjelaskan cara memperbaiki kesalahan konfigurasi yang hilang dengan Node.js? Saya telah mengikuti semua contoh dari halaman dokumen aws tetapi saya masih mendapatkan kesalahan ini apa pun yang terjadi.
{ [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 - -
Ini kode saya:
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
sumber
sumber
us-east-1
untuk semua sumber daya, menggunakan wilayah khusus sumber daya saat membuat objek.Saya memiliki masalah yang sama "Wilayah yang hilang dalam konfigurasi" dan dalam kasus saya, tidak seperti di CLI atau Python SDK, Node SDK tidak akan membaca dari
~\.aws\config
file.Untuk mengatasi ini, Anda memiliki tiga opsi:
Konfigurasikan secara terprogram (hard-code):
AWS.config.update({region:'your-region'});
Gunakan variabel lingkungan. Sementara CLI menggunakan
AWS_DEFAULT_REGION
, Node SDK menggunakanAWS_REGION
.Muat dari file JSON menggunakan
AWS.config.loadFromPath('./config.json');
Format JSON:
sumber
AWS_DEFAULT_REGION
dan SdkAWS_REGION
. Itu adalah sesuatu yang tidak jelas dan sesuatu yang menggigit saya di masa lalu. Ini disorot di bagian bawah AWS SDK Untuk Panduan Pengembang Javascript - Menyetel Wilayah tetapi tidak jelasAWS_SDK_LOAD_CONFIG
ketrue
Jika Anda bekerja dengan AWS CLI, Anda mungkin memiliki wilayah default yang ditentukan di ~ / .aws / config. Sayangnya AWS SDK untuk JavaScript tidak memuatnya secara default. Untuk memuatnya, definisikan env var
Lihat https://github.com/aws/aws-sdk-js/pull/1391
sumber
set AWS_ACCESS_KEY_ID="KEY ID GOES HERE" set AWS_SECRET_ACCESS_KEY="SECRET KEY GOES HERE" set AWS_REGION="us-east-1"
Anda dapat menentukan wilayah saat membuat koneksi dynamodb (belum mencoba s3 tetapi itu juga berfungsi).
sumber
var dynamodb = new AWS.DynamoDB({ 'region': 'eu-west-1', 'endpoint': 'http://localhost:8000' }); var docClient = new AWS.DynamoDB.DocumentClient({"service": dynamodb});
Harus bekerja mengingat itu dalam dokumentasi// tetapkan kredensial AWS di sini dengan cara berikut:
sumber
Saya telah memeriksa kode Anda dan di sini Anda terhubung ke layanan AWS sebelum mengatur wilayah, jadi saya menyarankan Anda untuk memperbarui wilayah terlebih dahulu dan kemudian menghubungkan ke layanan atau membuat contoh seperti di bawah ini -
sumber
Kesalahan yang sama untuk saya:
Setelah melakukan banyak percobaan saya telah menetapkan di bawah ini:
PILIHAN 1
AWS_REGION
variabel lingkungan hanya di sistem lokal, keus-east-1
(contoh)Untuk Linux:
Untuk Windows,
lihat: https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-envvars.html
juga, tidak perlu digunakan dalam kode, misalnya:
AWS.config.update(...)
, ini tidak wajibAWS.S3()
, dll., ini akan berfungsi tanpa masalah. Di tempat S3, mungkin ada layanan AWSDalam kasus yang jarang terjadi jika di suatu tempat beberapa default diasumsikan dalam kode dan Anda dipaksa untuk mengirim wilayah, maka gunakan
{'region': process.env.AWS_REGION})
PILIHAN 2
Alih-alih variabel lingkungan, cara lain adalah file AWS CONFIG:
Di Linux Anda dapat membuat file di bawah ini:
Lihat https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-files.html
sumber
environment variable
? apa yang Anda maksud denganlocal system
?Ini mungkin bukan cara yang tepat untuk melakukannya, tetapi saya memiliki semua konfigurasi saya di file JSON terpisah. Dan ini memperbaiki masalah saya
Untuk memuat konfigurasi AWS, saya melakukan ini:
config.aws hanyalah file JSON.
sumber
Anda dapat membuat modul umum dan menggunakannya berdasarkan wilayah yang Anda inginkan
dan mengkonsumsinya sebagai,
idenya adalah untuk Memperbarui konfigurasi AWS sebelum membuat contoh s3
sumber