Как установить время ожидания по умолчанию для AWS DocumentClient javascript SDK

#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, а с пулами сокетов и ожиданием доступного сокета.