我有一个 Lambda 函数,旨在从 SQS 队列中获取消息,然后输入一个名为的值perf_value
,该值只是一个整数。CloudWatch 日志显示它每次触发并记录Done
,如.then()
我的写入点块中所示。每次触发时,我仍然只能在 InfluxDB Cloud 中看到一个数据点。我不知道为什么它只输入一个值,然后什么都没有。我在 SQS 中没有看到积压,在 CloudWatch 中也没有错误消息。我猜这是代码问题或 InfluxDB Cloud 设置,尽管我使用了您希望实际适用于多个数据点的默认值
'use strict';
const {InfluxDB, Point, HttpError} = require('@influxdata/influxdb-client')
const InfluxURL = 'https://us-west-2-1.aws.cloud2.influxdata.com'
const token = '<my token>=='
const org = '<my org>'
const bucket= '<bucket name>'
const writeApi = new InfluxDB({url: InfluxURL, token}).getWriteApi(org, bucket, 'ms')
module.exports.perf = function (event, context, callback) {
context.callbackWaitsForEmptyEventLoop = false;
let input = JSON.parse(event.Records[0].body);
console.log(input)
const point = new Point('elapsedTime')
.tag(input.monitorID, 'monitorID')
.floatField('elapsedTime', input.perf_value)
// .timestamp(input.time)
writeApi.writePoint(point)
writeApi
.close()
.then(() => {
console.log('Done')
})
.catch(e => {
console.error(e)
if (e instanceof HttpError && e.statusCode === 401) {
console.log('Unauthorized request')
}
console.log('\nFinished ERROR')
})
return true
};
编辑** 仍然无法解决问题。我可以让一个数据点进入 influxdb,然后什么都不会出现。