ORc*_*der 5 amazon-dynamodb aws-sdk-js
我已经开始在我的一些服务中使用新的 AWS 版本 3 sdk。不幸的是,并不总是清楚如何使用版本 2 sdk 中提供的模块化版本 3 代码中的某些功能。
要为非模块化 sdk 设置超时,您可以执行以下操作:
AWS.config.update({
httpOptions: {
connectTimeout: 10000,
timeout: 10000
}
});
Run Code Online (Sandbox Code Playgroud)
但是,当我想使用版本 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 });
Run Code Online (Sandbox Code Playgroud)
如何为 AWS V3 sdk 中的 DynamoDBClient 设置超时?
这个关于升级的链接似乎有一个例子,在关于 的部分中httpOptions。那里的例子有一个明显的错字。直接查看新的AWS v3代码,很明显不需要指定代理(如果不通过代理则有默认值) - 所以这个例子就足够了。
// Use default Https agent, but override the socket timeout
const requestHandler = new NodeHttpHandler({
connectionTimeout: 30000,
socketTimeout: 30000,
});
const options = {
region: AWS_REGION,
maxAttempts: 2,
requestHandler, // Use handler with alternate settings for timeouts
};
export const dynamodbClient = new DynamoDBClient(options);
Run Code Online (Sandbox Code Playgroud)
以下是设置 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'})
})
});
Run Code Online (Sandbox Code Playgroud)
您应该能够在NodeHttpHandler的选项中设置connectionTimeout或。socketTimeout
另外,值得阅读SDK v3 开发人员指南。
| 归档时间: |
|
| 查看次数: |
7559 次 |
| 最近记录: |