def lambda_handler()

in sam-app/lambda_functions/sfSubmitTranscribeJob.py [0:0]


def lambda_handler(event, context):
    try:
        job_name = event["jobName"]
        media_format = event["mediaFormat"]
        file_uri = event["fileUri"]
        language_code = event["languageCode"]
        transcriptDestination = event["transcriptDestination"]
        outputEncryptionKMSKeyId = event["outputEncryptionKMSKeyId"]
        settings = event["settings"]

        logger.info('OutputBucketName: ' + transcriptDestination + ' > jobName: ' + job_name)

        response = client.start_transcription_job(
            TranscriptionJobName=job_name,
            LanguageCode=language_code,
            MediaFormat=media_format,
            Media={
                'MediaFileUri': file_uri
            },
            OutputBucketName = transcriptDestination,
            #OutputEncryptionKMSKeyId = outputEncryptionKMSKeyId,
            Settings = settings
        )
        # BELOW IS THE CODE TO FIX SERIALIZATION ON DATETIME OBJECTS
        if "CreationTime" in response["TranscriptionJob"]:
            val = response["TranscriptionJob"]["CreationTime"]
            response["TranscriptionJob"]["CreationTime"] = val.strftime("%Y-%m-%dT%H:%M:%S.%f%z") if isinstance(val, datetime.datetime) else str(val)
        if "StartTime" in response["TranscriptionJob"]:
            val = response["TranscriptionJob"]["StartTime"]
            response["TranscriptionJob"]["StartTime"] = val.strftime("%Y-%m-%dT%H:%M:%S.%f%z") if isinstance(val, datetime.datetime) else str(val)
        if "CompletionTime" in response["TranscriptionJob"]:
            val = response["TranscriptionJob"]["CompletionTime"]
            response["TranscriptionJob"]["CompletionTime"] = val.strftime("%Y-%m-%dT%H:%M:%S.%f%z") if isinstance(val, datetime.datetime) else str(val)
        return response["TranscriptionJob"]
    except Exception as e:
        raise(e)