翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
「Lambda デプロイパッケージを作成する」の手順に従いますが、kinesis-to-opensearch
という名前のディレクトリを作成し、sample.py
に次のコードを使用します。
import base64
import boto3
import json
import requests
from requests_aws4auth import AWS4Auth
region = '' # e.g. us-west-1
service = 'es'
credentials = boto3.Session().get_credentials()
awsauth = AWS4Auth(credentials.access_key, credentials.secret_key, region, service, session_token=credentials.token)
host = '' # the OpenSearch Service domain, e.g. https://search-mydomain.us-west-1.es.amazonaws.com
index = 'lambda-kine-index'
datatype = '_doc'
url = host + '/' + index + '/' + datatype + '/'
headers = { "Content-Type": "application/json" }
def handler(event, context):
count = 0
for record in event['Records']:
id = record['eventID']
timestamp = record['kinesis']['approximateArrivalTimestamp']
# Kinesis data is base64-encoded, so decode here
message = base64.b64decode(record['kinesis']['data'])
# Create the JSON document
document = { "id": id, "timestamp": timestamp, "message": message }
# Index the document
r = requests.put(url + id, auth=awsauth, json=document, headers=headers)
count += 1
return 'Processed ' + str(count) + ' items.'
region
と host
の変数を編集します。
まだ持っていない場合、pip をインストール
cd kinesis-to-opensearch
pip install --target ./package requests
pip install --target ./package requests_aws4auth
次に、「Lambda 関数を作成する」の手順に従いますが、「前提条件」の IAM ロールと、トリガーの以下の設定を指定します。
-
[Kinesis ストリーム]: Kinesis ストリーム
-
[バッチサイズ]: 100
-
[開始位置]: 水平トリム
詳細については、Amazon Kinesis Data Streams デベロッパーガイドの「Amazon Kinesis Data Streams とは」を参照してください。
この時点で、リソースがすべて揃いました (Kinesis データストリーム、ストリームが新しいデータを受信してそのデータのインデックスを作成した後に実行する関数、検索および可視化のための OpenSearch Service ドメイン)。