# Amazon Kinesis Import Integration

Amazon Kinesisは、AWSでストリーミングデータを扱うためのプラットフォームで、ストリーミングデータの読み込みと分析、さらにカスタムストリーミングデータアプリケーションを構築する機能を提供します。

この記事では、AWS Lambdaを使用してAmazon Kinesis StreamからTreasure Dataにデータを取り込む方法について説明します。

## 前提条件

- Treasure Dataの基本的な知識
- Amazon Kinesisの基本的な知識


## Master API keyの取得

Treasure コンソールから[master keyを取得](/products/my-settings/getting-your-api-keys)できます。

## AWS Lambda functionの設定

[AWS Lambda](https://aws.amazon.com/lambda/)は、データ取り込みパイプラインの一部です。AWS Lambdaを使用することで、Amazon Kinesisからのトリガーに応答してコードを実行できます。

### Blueprintの選択

1. kinesis-process-record-pythonを選択します。


![](/assets/image-20191206-001703.7b5e0fc793f7bd5d0f760ff7b3ec3924e96307c1b40c0dd1e07ffca4a86b3374.9035ab13.png)

### Event Sourcesの設定

1. Event source typeとしてKinesisを選択します。
2. Kinesis StreamとしてストリームのNameを指定します。


![](/assets/image-20191206-001744.a7daf1169c2f8f31d97b45af8bef93679604ce0164d23e64c27cf569fc3e8b93.9035ab13.png)

### Functionの設定

1. Name、Descriptionを指定します。
2. RuntimeとしてPython 3.xを選択します。


![](/assets/image-20191206-001809.6eb77e0b0d5bc0f498a7e3d67ecfa15c352d2d0fc9ad464cf1f5e8b42ac3aea8.9035ab13.png)

### Lambda_handler Python Scriptの設定

KinesisのストリーミングイベントはPython function lambda_handler.pyによって処理され、TreasureDataはTreasure Boxesのソリューションの1つとして、Kinesis Firehoseデータストリームイベントをインポートするサンプルスクリプトを提供しています。

[Treasure Boxesリンク](https://github.com/treasure-data/treasure-boxes/tree/master/integration-box/Kinesis)からPythonスクリプトをコピー&ペーストします。READMEファイルに実行手順の詳細が記載されています。

### Functionの確認

設定を確認します。

**Create function**を選択します。

![](/assets/image-20191206-002721.06c7862bdb944c11f25917d1b86bb126dd9e6ac71cac2d8397217021546a539a.9035ab13.png)

### Functionのテスト

設定後、Treasure Boxesに記載されているように、以下のイベントサンプルでfunctionをテストできます。

Lambda UIから1回限りのテストを行うには、以下のレコードを使用できます(Actions > Configure test event)。


```json
{
  "invocationId": "invocationIdExample",
  "deliveryStreamArn": "arn:aws:kinesis:EXAMPLE",
  "region": "us-west-2",
  "records": [
    {
      "recordId": "49546986683135544286507457936321625675700192471156785154",
      "approximateArrivalTimestamp": 1495072949453,
      "data": "eyJmb28iOiAiYmFyIn0="
    }
  ]
}
```

recordsのdataの部分は、base64エンコードされた{"foo": bar}に解決されます。

## データアップロードの確認

データが正常にインポートされたことを確認するには:

1. Treasure コンソール > Databasesに移動します。


データの取り込みが完了するまで1〜3分かかります。