我们正在使用NodeJS通过Google Speech-to-Text API处理较长的成绩单。许多功能需要10分钟以上的时间来处理。处理/音频时间的通常比例约为50%。因此,一个20分钟的FLAC音频文件需要大约10分钟的处理时间(因此,在Google Cloud Functions上失败,最大时间为540秒或9分钟),而超过29分钟的任何时间在AWS Lambda上都会失败。
每个平台上有哪些服务可以在20/30分钟内处理音频文件,还可以发送事件数据并调用应用程序?我可以混合使用云功能和其他平台来处理成绩单吗?
除了AWS,我不了解其他云提供商,因此我将根据AWS进行回答。我总是尽可能使用AWS Lambda,除非运行时间大于15分钟。在这种情况下,我使用AWS Batch(AWS Batch –在AWS上运行批处理计算作业)。
您也可以使用AWS Fargate,但必须配置集群和docker映像。
编辑1:
批处理可以通过API网关发送事件,就像您想发送给Lambda一样?
我从来没有直接通过API网关触发批处理作业(我不知道这是否可能)。我一直使用API Gateway来触发Lambda和Lambda触发批处理(请查看此工作流程,以获得更好的主意)。
此外,您可以使用AWS CloudWatch事件来触发AWS Batch作业。例如,如果您在抄本之前将文件上传到S3,则可以按S3事件触发AWS Batch Job(请分步查看此步骤)。
将压缩的Lambda函数转换为AWS Fargate映像有多么简单?
如果您了解Docker,AWS ECR和ECS集群,这并不难。
首先,您需要使用源代码创建一个Docker映像。请逐步检查此步骤。基本上,您将解压缩代码,复制到npm install
Docker映像,在Dockerfile中运行并运行命令。
之后,您可以创建一个AWS ECR,在其中上载Docker映像。
创建一个AWS ECS集群
创建一个AWS Fargate任务
最后,通过Lambda运行任务。
如果您没有使用Docker和AWS Fargate的经验,则可以轻松实施AWS Batch。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句