首页 > 解决方案 > 如何为 AWS V3 Dynamo 客户端设置超时

问题描述

我已经开始为我的一些服务使用新的 AWS 版本 3 sdk。不幸的是,如何使用版本 2 sdk 中提供的模块化版本 3 代码中的某些功能并不总是很清楚。

要为非模块化 sdk 设置超时,您可以执行以下操作:

AWS.config.update({
     httpOptions: {
        connectTimeout: 10000,
        timeout: 10000
    }
 });

但是,当我想使用版本 3 sdk 并使用 Dynamo 客户端时,我明确尝试不使用全局 AWS 对象。据我所知,DynamoDBClient 的配置输入不接受 httpOptions,这是通常设置超时的地方。

import { DynamoDBClient } from "@aws-sdk/client-dynamodb";
const REGION = process.env.AWS_REGION;
const v3DynamoClient: DynamoDBClient = new DynamoDBClient({ region: REGION });

如何在 AWS V3 sdk 中为 DynamoDBClient 设置超时?

标签: amazon-dynamodbaws-sdk-js

解决方案


这是一个设置 TLS v1.2 选项的示例,应该会有所帮助:

const https = require("https");
const {NodeHttpHandler} = require("@aws-sdk/node-http-handler");
const {DynamoDBClient} = require("@aws-sdk/client-dynamodb");
const client = new DynamoDBClient({
  region: "us-west-2",
  requestHandler: new NodeHttpHandler({
    httpsAgent: new https.Agent({secureProtocol: 'TLSv1_2_method'})
  })
});

您应该能够设置connectionTimeoutsocketTimeoutNodeHttpHandler的选项中。

此外,值得阅读SDK v3 开发人员指南


推荐阅读