【问题标题】:kinesis agent to lambda, how to get origin file and serverkinesis 代理到 lambda,如何获取原始文件和服务器
【发布时间】:2016-07-03 21:41:52
【问题描述】:

我有一个 kinesis 代理,可以将大量日志文件信息流式传输到 kinesis 流,并且我有一个解析信息的 Lambda 函数。 在 Lambda 上,除了字符串之外,我还需要知道源文件名和机器名吗?

【问题讨论】:

    标签: aws-lambda amazon-kinesis amazon-kinesis-firehose


    【解决方案1】:

    您可以将其添加到您发送到Kinesis 的数据中。

    Lambda 获取Kinesis 记录为base64 字符串,您可以将此格式的JSON 编码为该字符串:

    {
      "machine": [machine],
      "data": [original data]
    }
    

    然后,在处理Lambda 上的记录时:(nodejs):

    let record_object = JSON.parse(new Buffer(event.Records[0].kinesis.data, 'base64').toString('utf8'));
    
    let machine = record_object.machine;
    let data = record_object.data;
    

    【讨论】:

      【解决方案2】:

      假设您使用 Kinesis Agent 生成数据流。我看到开源社区已经在代理中添加了 ADDEC2METADATA 作为预处理选项。 source code

      确保源内容文件为 JSON 格式。如果原始格式是 CSV,则首先使用 CSVTOJSON 转换器将其转换为 JSON,然后将其通过管道传输到 ADDEC2METADATA 转换器,如下所示。

      打开 agent.json 并添加以下内容:

          "flows": [
              {
                  "filePattern": "/tmp/app.log*", 
                  "kinesisStream": "my-stream",
                  "dataProcessingOptions": [
      {
                          "optionName": "CSVTOJSON",
                          "customFieldNames": ["your", "custom", "field", "names","here", "if","origin","file","is","csv"],
                          "delimiter": ","
                      },
                      {
                          "optionName": "ADDEC2METADATA",
                          "logFormat": "RFC3339SYSLOG"
                      }
                  ]
              }
          ] 
      }
      

      如果您的代码用完了容器/ECS/EKS 等,而原始信息不像收集有关裸机 EC2 的信息那么简单,请在 agent.log 文件中使用如下所示的“ADDMETADATA”声明:

      { 
          "optionName": "ADDMETADATA",
         "timestamp": "true/false",
         "metadata": {
         "key": "value",
            "foo": {
              "bar": "baz"
            }
          }
        }
      

      【讨论】:

        猜你喜欢
        • 2010-10-05
        • 2017-06-30
        • 1970-01-01
        • 2015-09-10
        • 1970-01-01
        • 2016-01-14
        • 1970-01-01
        • 2018-12-15
        • 1970-01-01
        相关资源
        最近更新 更多