我有一个Lambda函数,它每5秒向Clickhouse发送一次数据(Kinesis触发器)。这是工作正常的最后一个月,直到昨天它停止没有任何错误。
lambda开始超时(6秒),我把它提高到一分钟,但它仍然超时。我检查了lambda,发现代码在插入语句级别被阻塞,并且尝试连接数据库时超时。
我尝试使用另一个外部脚本连接(使用相同的VPC配置),它工作得很好。
我试图创建另一个lambda,我把里面只是客户端设置和一个随机查询数据库,它超时了!
有什么方法可以调试这个吗?特别是数据库日志中没有错误,因为根本没有建立请求。
这是我用来部署lambda的CDK代码
const test = new NodejsFunction(this, 'commonTest', {
environment: {
},
vpc,
vpcSubnets: {
subnetType: ec2.SubnetType.PRIVATE_WITH_EGRESS,
},
securityGroups: [securityGroup],
memorySize: 512,
timeout: Duration.seconds(60),
runtime: lambda.Runtime.NODEJS_18_X,
entry: path.join(__dirname, `../resources/test/test.ts`),
handler: 'handler'
});
这是lambda中的代码:
const clickhouse = new ClickHouse({
url,
port: 8123,
debug: false,
basicAuth: {
username: "",
password: "",
},
isUseGzip: false,
trimQuery: false,
usePost: false,
format: "json", // "json" || "csv" || "tsv"
config: {
database: 'default',
},
});
const a = await clickhouse.query(" select * from Record order by createdAt DESC LIMIT 1").toPromise();
1条答案
按热度按时间soat7uwm1#
问题是有人删除了我们正在使用的安全组中的出站规则,这就是HTTP请求挂起的原因。(那个人不是我)