Может кто-нибудь объяснить, как исправить отсутствующую ошибку конфигурации с помощью Node.js? Я следил за всеми примерами со страницы документа aws, но я все равно получаю эту ошибку, несмотря ни на что.
{ [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 - -
Вот мой код:
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
Анеджа Дэниэлс
источник
источник
us-east-1
для всех ресурсов, используйте регион для конкретного ресурса при создании объекта.У меня была такая же проблема «Отсутствует регион в конфигурации», и в моем случае это было то, что, в отличие от CLI или Python SDK, Node SDK не считывал
~\.aws\config
файла.Чтобы решить эту проблему, у вас есть три варианта:
Настроить программно (жестко):
AWS.config.update({region:'your-region'});
Используйте переменную среды. В то время как CLI использует
AWS_DEFAULT_REGION
, Node SDK используетAWS_REGION
.Загрузить из файла JSON с помощью
AWS.config.loadFromPath('./config.json');
Формат JSON:
источник
AWS_DEFAULT_REGION
и SdkAWS_REGION
. Это что-то неочевидное и то, что укусило меня в прошлом. Он выделен в нижней части Руководства разработчика AWS SDK для Javascript - Установка региона, но это не очевидноAWS_SDK_LOAD_CONFIG
значениеtrue
Если вы работаете с AWS CLI, вероятно, у вас есть регион по умолчанию, определенный в ~ / .aws / config. К сожалению, AWS SDK для JavaScript не загружает его по умолчанию. Чтобы загрузить его, определите env var
См. Https://github.com/aws/aws-sdk-js/pull/1391
источник
set AWS_ACCESS_KEY_ID="KEY ID GOES HERE" set AWS_SECRET_ACCESS_KEY="SECRET KEY GOES HERE" set AWS_REGION="us-east-1"
Вы можете указать регион при создании соединения с Dynamodb (не пробовал s3, но это тоже должно работать).
источник
var dynamodb = new AWS.DynamoDB({ 'region': 'eu-west-1', 'endpoint': 'http://localhost:8000' }); var docClient = new AWS.DynamoDB.DocumentClient({"service": dynamodb});
Должно работать, учитывая, что это указано в документации// назначаем здесь учетные данные AWS следующим образом:
источник
Я просмотрел ваш код, и здесь вы подключаетесь к сервисам AWS перед установкой региона, поэтому я предлагаю вам сначала обновить регион, а затем подключиться к сервисам или создать их экземпляр, как показано ниже -
источник
Такая же ошибка для меня:
Проведя множество испытаний, я остановился на следующем:
ОПЦИЯ 1
AWS_REGION
переменную среды только в локальной системеus-east-1
(пример)Для Linux:
Для Windows
см .: https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-envvars.html.
также нет необходимости использовать в коде, например:
AWS.config.update(...)
, это не требуетсяAWS.S3()
и т.д., они будут работать без проблем. Вместо S3 может быть любой сервис awsВ редком случае, если где-то в коде предполагаются некоторые значения по умолчанию, и вы вынуждены отправить регион, используйте
{'region': process.env.AWS_REGION})
ВАРИАНТ 2
Другой способ - это не переменные среды, а файл AWS CONFIG:
В Linux вы можете создавать следующие файлы:
См. Https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-files.html.
источник
environment variable
? что вы имеете в видуlocal system
?Возможно, это неправильный способ сделать это, но у меня все мои конфигурации находятся в отдельном файле JSON. И это решает проблему для меня
Чтобы загрузить конфигурацию AWS, я делаю следующее:
config.aws - это просто файл JSON.
источник
Вы можете создать общий модуль и использовать его в зависимости от региона, который вы хотите
и потреблять как,
идея состоит в том, чтобы обновить конфигурацию AWS перед созданием экземпляра s3
источник