#javascript #amazon-web-services #amazon-dynamodb #aws-sdk-js
Вопрос:
У меня есть код, который делает это:
const options = {
region: AWS_REGION,
// uncomment to log all AWS requests for debugging
logger: console,
httpOptions: { timeout: 45000 },
maxRetries: 1,
};
export const dynamodb = new AWS.DynamoDB(options);
// Pass the dynamodb instance with configured options to document client
export const documentClient = new AWS.DynamoDB.DocumentClient({ service: dynamodb });
В другом месте я использую экземпляр DocumentClient, например
const { $response } = await documentClient.update(updateParams).promise();
Но с включенным ведением журнала я вижу записи в журнале из AWS, такие как:
2021-09-03T18:20:49.013Z 16c44265-f3e4-4166-8f4f-6b76c5128e46
INFO [AWS dynamodb 200 771.865s 0 retries] updateItem({
TableName: <snip...>
Это больше, чем 45 секунд (45000 мс), и это даже больше, чем задокументированные 120 мс по умолчанию.
Есть ли какая-то причина, по которой эти параметры не вызвали бы тайм-аут DocumentClient (на самом деле базового клиента dynamodb)?
Комментарии:
1. Оказывается, длительная задержка связана не с подключением сокета к DynamoDB, а с пулами сокетов и ожиданием доступного сокета.