#node.js #amazon-web-services #amazon-dynamodb
Вопрос:
Я пытаюсь создать новый элемент в своей таблице DynamoDB, используя функцию put для DocumentClient, но получаю сообщение об ошибке, ссылающееся на ECONNRESET. Когда другие ссылаются на ECONNRESET при переполнении стека, кажется, что для них это может быть проблемой прокси-сервера. Однако я не уверен, как бы я стал отлаживать это.
Вот документы, которые я использовал:
https://docs.aws.amazon.com/sdk-for-javascript/v2/developer-guide/dynamodb-example-document-client.html
https://docs.amplify.aws/guides/functions/dynamodb-from-js-lambda/q/platform/js/
Вот код
import AWS from 'aws-sdk';
AWS.config.update({region: 'us-east-1'})
const docClient = new AWS.DynamoDB.DocumentClient({apiVersion: '2012-08-10'});
export const createItem = async (tableName, item) => {
const params = {
TableName: tableName,
Item: item
};
console.log(params);
try {
await docClient.put(params).promise();
console.log("Success");
} catch (err) {
console.log(err);
}
}
и вот ошибка, которую я получаю
Error: read ECONNRESET
at TLSWrap.onStreamRead (internal/stream_base_commons.js:209:20) {
errno: -4077
code: 'TimeoutError',
syscall: 'read',
time: 2021-09-25T12:30:23.577z,
region: 'us-east-1',
hostname: 'dynamodb.us-east-1.amazonaws.com',
retryable: true
}
Скриншот кода и терминала:
https://i.stack.imgur.com/f4JvP.png
Комментарии:
1. Где выполняется ваш код и какова сетевая конфигурация этого хоста?
2. @питер, я все понял. Хотя спасибо
Ответ №1:
Кто — то мне помог. Я использовал корпоративный интерфейс командной строки через прокси — сервер для ручного локального тестирования. Мне пришлось использовать эту команду в командной pc login aws --shared-credentials
строке, которая довольно специфична для того, где я работаю.
Мне также пришлось включить этот код:
const proxy = require('proxy-agent');
AWS.config.update({
httpOptions: {
agent: proxy(process.env.HTTP_PROXY)
}
});