def process_record()

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}")