amazon-dynamodb - 如何为 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 设置超时?
解决方案
这是一个设置 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'})
})
});
您应该能够设置connectionTimeout
或socketTimeout
在NodeHttpHandler的选项中。
此外,值得阅读SDK v3 开发人员指南。
推荐阅读
- python - 在云 VM 中使用 gunicorn 部署应用程序时出现“Errno 5- 输入/输出错误”
- ionic-framework - 如何创建 php 脚本以在 ionic 应用程序中发送电子邮件
- android - 使用 Android Management API 创建策略 - 快速入门 Colab
- ios - 在 UIWindow 上添加的视图中添加手势识别器
- apache-spark - 为什么使用 spark 的 QuantileDiscretizer 得到的结果分组不均匀?
- c# - 如何仅读取添加到事件日志中的新事件?
- python - 如何删除第一级索引,然后将剩余的索引值与 pd DataFrame 的自定义逻辑合并?
- javascript - 如何使用 javascript 将 onclick 事件添加到表格单元格?
- python - Python - UnicodeDecodeError:'charmap'编解码器无法解码位置 1070 的字节 0x9d:字符映射到
- python - 双引号在python中显示为菱形问号