in amazon-kinesis-video-streams-workshop-jp/lambda_function.py [0:0]
def process_record(record):
""" Submit face recognition result to Elasticsearch service """
payload = json.loads(base64.b64decode(record['kinesis']['data']))
logger.info(f"record: {payload}")
unix_time = payload["InputInformation"]["KinesisVideo"]["ServerTimestamp"]
timestamp = datetime.datetime.utcfromtimestamp(unix_time).strftime("%Y-%m-%dT%H:%M:%S+0000")
for face in payload["FaceSearchResponse"]:
if not face["MatchedFaces"]:
continue
confidence = face["MatchedFaces"][0]["Similarity"]
name = face["MatchedFaces"][0]["Face"]["ExternalImageId"]
data = {"timestamp": timestamp, "name": name, "confidence": confidence}
response = requests.post(f"{es_url}/record/face/{uuid.uuid4()}",
auth=aws_auth,
headers={"Content-Type": "application/json"},
data=json.dumps(data))
logger.info(f"result: code={response.status_code}, response={response.text}")