subscription-filter-event-generator

subscription-filter-event-generatorは、json形式のログがサブスクリプションフィルタ経由でLambda関数に渡されるときのイベントデータを生成するコマンドです。

Examples

$ subscription-filter-event-generator  \
	--owner=000000000000 \
	--log-group=hsaki \
	--log-stream=mystream \
	--subscription-filter=myfilter \
	--log-events=file://example.json

{
	"awslogs": {
		"data": "H4sIAAAAAAAC/4TOQUvDQBAF4L8S3nkPSbqg7i1gWjyIkORWgsRmbBa72bAzVULpf5e2FFQSu6d985iPOcARc7OlahwIBo9Zlb0+52WZrXIo+K+eAgziHw8KO79dBb8fYNBx82Evo1ICNQ4GbuTLV4H3b7wJdhDr+6XdCQWGWcON7+eA+ryZf1Ivp+IA28KATvmpTaAg1hFL4waYROtY6/Th/i6OY3U9HAbrvCheijpa2sASCbFE1/KofpPpPJlMkSVtfN/+by7mzXTKrDobbpB6nlxMkVq6P2B9/A4AAP//BC+CX9sBAAA="
	}
}
$ subscription-filter-event-generator  \
	--owner=000000000000 \
	--log-group=hsaki \
	--log-stream=mystream \
	--subscription-filter=myfilter \
	--log-events='[{"id":"eventId1","message":"[ERROR] First test message","timestamp":1440442987000},{"id":"eventId2","message":"[ERROR] Second test message","timestamp":1440442987001}]'

{
	"awslogs": {
		"data": "H4sIAAAAAAAC/3SOT0vDQBDFv0p45z1sSkCdW8C0eBAh6a0Eic1YF7t/2JkqofS7S1sCKjqnefNjfrwjPIsMO15PiUG4r9f182PTdfWqgUH8DJxBsN8GBvu4W+V4SCC8yfDurqdOMw8eBD/JdTWQw4tss0vqYli6vXIW0AZ+er0E9JfP5oODnsERbgSBz/lhLGGgzrPo4BOorCpbVYu72xtrrZmLg7Bp2vap7Yuly6KFsmgxw5P5qVz8ryz/Una8jWH85exPXwEAAP//rEsFZzcBAAA="
	}
}

Install

リリースページから所定のバイナリをダウンロードしてください。

// example
$ curl -L -o subscription-filter-event-generator https://github.com/saki-engineering/subscription-filter-event-generator/releases/download/v0.0.1/subscription-filter-event-generator-darwin-amd64
$ mv subscription-filter-event-generator ~/.local/bin
$ chmod +x ~/.local/bin/subscription-filter-event-generator

Available Flags

Option Description
--owner ログ送信元が属するAWSアカウント (default: 123456789123)
--log-group 送信元となるロググループ名 (default: "testLogGroup")
--log-stream 送信元となるログストリーム名 (default: "testLogStream")
--subscription-filter 送信元のサブスクリプションフィルタ名 (default: "testFilter")
--log-events 送信するログイベントデータ (default: sam local generate-event cloudwatch logsコマンドで生成されるものと同じ)
$ sam local generate-event cloudwatch logs | jq -r .awslogs.data | base64 -d | gzip -d
{
  // (略)
  "logEvents": [
    {
      "id": "eventId1",
      "timestamp": 1440442987000,
      "message": "[ERROR] First test message"
    },
    {
      "id": "eventId2",
      "timestamp": 1440442987001,
      "message": "[ERROR] Second test message"
    }
  ]
}