Google Cloud Functions和AWS Lambda的超时问题

sig*_*ur7 8 javascript amazon-web-services google-cloud-platform aws-lambda google-cloud-functions

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

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

Ped*_*tes 5

除了 AWS 之外,我不知道还有其他云提供商,因此我将根据 AWS 来回答。我总是尽可能使用 AWS Lambda,除非运行时间超过 15 分钟。在本例中,我使用AWS Batch ( AWS Batch \xe2\x80\x93 在 AWS 上运行批量计算作业)。

\n\n

您还可以使用AWS Fargate,但您必须配置集群和 docker 映像。

\n\n

编辑1:

\n\n
\n

我想,可以通过 API Gateway 批量发送事件,就像发送到 Lambda 一样?

\n
\n\n

我从未直接通过 API Gateway 触发过批处理作业(我不知道这是否可能)。我一直使用 API Gateway 来触发 Lambda 和 Lambda 触发器批处理(请查看此工作流程,以获得更好的想法)。

\n\n

此外,您还可以使用 AWS CloudWatch 事件来触发 AWS Batch 作业。例如,如果您在转录之前将文件上传到 S3,则可能会通过 S3 事件触发 AWS Batch Job(请逐步查看此步骤)。

\n\n
\n

将压缩的 Lambda 函数转换为 AWS Fargate 映像有多简单?

\n
\n\n

如果您了解 Docker、AWS ECR 和 ECS 集群,那么这并不困难。

\n\n
    \n
  1. 首先,您需要使用源代码创建 Docker 映像。请逐步查看此内容。基本上,您将解压缩代码,复制到 docker 映像,运行npm install并运行 Dockerfile 中的命令。

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

  4. \n
  5. 创建AWS ECS集群

  6. \n
  7. 创建 AWS Fargate任务

  8. \n
  9. 最后,通过 Lambda 运行任务。

  10. \n
\n\n

如果您没有 Docker 和 AWS Fargate 的经验,AWS Batch 更容易实施。

\n