Google Cloud Functions和AWS Lambda的超时问题

sigur7

我们正在使用NodeJS通过Google Speech-to-Text API处理较长的成绩单。许多功能需要10分钟以上的时间来处理。处理/音频时间的通常比例约为50%。因此,一个20分钟的FLAC音频文件需要大约10分钟的处理时间(因此,在Google Cloud Functions上失败,最大时间为540秒或9分钟),而超过29分钟的任何时间在AWS Lambda上都会失败。

每个平台上有哪些服务可以在20/30分钟内处理音频文件,还可以发送事件数据并调用应用程序?我可以混合使用云功能和其他平台来处理成绩单吗?

佩德罗·阿兰特斯(Pedro Arantes)

除了AWS,我不了解其他云提供商,因此我将根据AWS进行回答。我总是尽可能使用AWS Lambda,除非运行时间大于15分钟。在这种情况下,我使用AWS BatchAWS 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集群,这并不难。

  1. 首先,您需要使用源代码创建一个Docker映像。逐步检查此步骤基本上,您将解压缩代码,复制到npm installDocker映像,在Dockerfile中运行并运行命令。

  2. 之后,您可以创建一个AWS ECR,在其中上载Docker映像。

  3. 创建一个AWS ECS集群

  4. 创建一个AWS Fargate任务

  5. 最后,通过Lambda运行任务。

如果您没有使用Docker和AWS Fargate的经验,则可以轻松实施AWS Batch。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章