# Amazon Kinesis Import Integration Amazon Kinesisは、AWSでストリーミングデータを扱うためのプラットフォームで、ストリーミングデータの読み込みと分析、さらにカスタムストリーミングデータアプリケーションを構築する機能を提供します。 この記事では、AWS Lambdaを使用してAmazon Kinesis StreamからTreasure Dataにデータを取り込む方法について説明します。 ## 前提条件 - Treasure Dataの基本的な知識 - Amazon Kinesisの基本的な知識 ## Master API keyの取得 TD Consoleから[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. TD Console > Databasesに移動します。 データの取り込みが完了するまで1〜3分かかります。