NodeJS 向clickhouse发送数据的AWS Lambda函数突然停止工作

v1l68za4  于 2023-06-05  发布在  Node.js
关注(0)|答案(1)|浏览(197)

我有一个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();
soat7uwm

soat7uwm1#

问题是有人删除了我们正在使用的安全组中的出站规则,这就是HTTP请求挂起的原因。(那个人不是我)

相关问题