0

perf_valueSQS キューからメッセージを取得し、整数と呼ばれる値を入力するように設計された Lambda 関数があります。CloudWatch ログは、書き込みポイントのブロックにDone見られるように、毎回起動し、ログに記録していることを示しています。.then()起動するたびに、InfluxDB Cloud に 1 つのデータ ポイントしか表示されません。単一の値のみを入力し、その後は何も入力しない理由がわかりません。SQS にバックログは表示されず、CloudWatch にもエラー メッセージは表示されません。複数のデータポイントで実際に機能すると予想されるデフォルトを使用しましたが、コードの問題またはInfluxDBクラウドのセットアップであると推測しています

'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 に入るデータポイントを 1 つ取得できますが、何も表示されません。

4

1 に答える 1