如何在AWS SDK v3中使用sslEnabled配置参数?
在AWS SDK v3中替代
sslEnabled的配置方式 在AWS SDK v2中,你可以通过顶层的sslEnabled参数控制客户端是否启用SSL,比如针对本地Kinesis服务的配置:
import { Kinesis } from "aws-sdk"; // v2 new Kinesis({ endpoint: process.env.LOCALKINESISSTREAMENDPOINT, region: process.env.AWS_REGION, apiVersion: process.env.KINESIS_API_VERSION, sslEnabled: false, // required flag })
而在AWS SDK v3中,这个顶层参数被移除了,替代方案有两种:
1. 使用tls配置项直接控制
初始化Kinesis客户端时,通过tls参数直接开启/禁用TLS,对应v2的sslEnabled:
import { KinesisClient } from "@aws-sdk/client-kinesis"; // v3 const kinesisClient = new KinesisClient({ endpoint: process.env.LOCALKINESISSTREAMENDPOINT, region: process.env.AWS_REGION, tls: false, // 等价于v2的sslEnabled: false });
2. 自定义HTTP处理器(精细控制)
如果需要更复杂的TLS配置(比如禁用证书验证),可以通过requestHandler配置自定义HTTP客户端:
import { KinesisClient } from "@aws-sdk/client-kinesis"; import { NodeHttpHandler } from "@aws-sdk/node-http-handler"; import https from "https"; const kinesisClient = new KinesisClient({ endpoint: process.env.LOCALKINESISSTREAMENDPOINT, region: process.env.AWS_REGION, requestHandler: new NodeHttpHandler({ httpsAgent: new https.Agent({ rejectUnauthorized: false, // 适合本地无有效证书的场景 }), }), });
注意:如果你的本地Kinesis服务使用
http://开头的endpoint,SDK会自动使用HTTP协议,无需额外设置tls: false。只有当endpoint是https://但需要跳过SSL验证时,才需要上述配置。
内容的提问来源于stack exchange,提问作者n9dhal
相关产品推荐
相关产品推荐

