Kinesis Data Firehoseにデータ投入

表題を試したい。

■ 環境

  • awscli 1.15.0
  • AWS Kinesis Data Firehose
  • macOS High Sierra

■ Kinesis Data Firehose

ManagementConsoleからいろいろ設定をして環境は作った。テストをしたくて簡易的にデータを入れて動作を確認したい。

$ aws firehose help

`firehose`サブコマンドを使うようである。どんなコマンドがあるかと確認すると下記であった。

  • create-delivery-stream
  • delete-delivery-stream
  • describe-delivery-stream
  • help
  • list-delivery-streams
  • list-tags-for-delivery-stream
  • put-record
  • put-record-batch
  • tag-delivery-stream
  • untag-delivery-stream
  • update-destination

データの投入をしたいので、今回は`list-delivery-streams`/`describe-delivery-stream`/`put-record`だけを確認してみる。

$ aws firehose list-delivery-streams
{
  "DeliveryStreamNames": [
    "example-stream-001"
  ],
  "HasMoreDeliveryStreams": false
}
$

詳細を見てみる。

$ aws firehose describe-delivery-stream --delivery-stream-name example-stream-001
{
  "DeliveryStreamDescription": {
    "DeliveryStreamName": "example-stream-001",
    "DeliveryStreamARN": "arn:aws:firehose:ap-northeast-1:XXXXXXXXXXXX:deliverystream/example-stream-001",
    "DeliveryStreamStatus": "ACTIVE",
    "DeliveryStreamType": "DirectPut",
    "VersionId": "1",
    "CreateTimestamp": 1533028327.363,
    "Destinations": [
      {
        "DestinationId": "destinationId-000000000001",
        "S3DestinationDescription": {
        "RoleARN": "arn:aws:iam::XXXXXXXXXXXX:role/firehose_delivery_role",
        "BucketARN": "arn:aws:s3:::firehose-example",
        "Prefix": "logs/",
        "BufferingHints": {
          "SizeInMBs": 5,
          "IntervalInSeconds": 60
        },
        "CompressionFormat": "GZIP",
        "EncryptionConfiguration": {
          "NoEncryptionConfig": "NoEncryption"
        },
        "CloudWatchLoggingOptions": {
          "Enabled": true,
          "LogGroupName": "/aws/kinesisfirehose/example-stream-001",
          "LogStreamName": "S3Delivery"
        }
      },
      "ExtendedS3DestinationDescription": {
        "RoleARN": "arn:aws:iam::XXXXXXXXXXXX:role/firehose_delivery_role",
        "BucketARN": "arn:aws:s3:::firehose-example",
        "Prefix": "logs/",
        "BufferingHints": {
          "SizeInMBs": 5,
          "IntervalInSeconds": 60
        },
        "CompressionFormat": "GZIP",
        "EncryptionConfiguration": {
          "NoEncryptionConfig": "NoEncryption"
        },
        "CloudWatchLoggingOptions": {
          "Enabled": true,
          "LogGroupName": "/aws/kinesisfirehose/example-stream-001",
          "LogStreamName": "S3Delivery"
        },
        "ProcessingConfiguration": {
          "Enabled": false,
          "Processors": []
        },
        "S3BackupMode": "Disabled"
      }
    }
  ],
  "HasMoreDestinations": false
  }
}
$

設定した通りの内容が出てきている気がする。

JSONでデータをしたかったのだが、下記でできた。

aws firehose put-record --delivery-stream-name example-stream-001 --record '{"Data":"{\"attribute\":1}"}'

以上。