У меня есть лямбда-функция, которая предназначена для получения сообщения из очереди 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
};
EDIT ** Все еще не удалось решить проблему. Я могу получить одну точку данных для go в Influxdb, и тогда ничего не появится.