使用哪个 Google 云产品来执行一个很长的过程 Google Cloud VideoIntelligence Analysis

Which Google Cloud product to use to execute a very long process Google Cloud VideoIntelligence Analysis

我一直在使用 Google Cloud Video Intelligence 注释功能和 Google App Engine Flex。当我尝试对两小时的视频使用 VideoIntelligence 时,AnnotateVideo 函数需要 60 分钟才能响应。

gs_video_path ='gs://'+bucket_name+'/'+videodata.video.path+videodata.video.name
print(gs_video_path)

video_client = videointelligence.VideoIntelligenceServiceClient()
features = [videointelligence.enums.Feature.OBJECT_TRACKING]
operation = video_client.annotate_video(gs_video_path, features=features)

目前,我唯一可以执行此操作的地方是 Google App Engine Flex。然而,Google App Engine Flex 始终保持实例空闲,就成本而言,它与 运行 VM 非常相似。

Google App Engine 有 540 秒超时,同样 Google Cloud 运行 有 900 秒超时,Google Cloud Functions 有最大超时据我了解,600 秒。

在这些情况下,我应该使用哪个 Google 云产品进行一小时的处理,同时避免在没有使用时出现空闲实例。

(请不要回复引用 GKE 或其他基于 VM 的解决方案,不接受空闲实例解决方案)

Cloud 运行 的 900 秒超时可能会很快更改以满足您的需求(最多一小时)。作品中有一个功能。一旦 Beta 版可用,我会在这里更新,敬请期待。

#ahmetb-todo

我认为 Google 没有满足您需求的服务。
也许您应该实施一些自定义工作流程,例如:

  1. 从 "short living" 环境,如 Function、CloudRun 或 AppEngine 执行以下操作:
    1. 将您的长期运行任务的事件发布到 PubSub
    2. 使用 Compute Engine API 启动 VM
  2. 当 VM 启动时,它的启动脚本应该从 PubSub 获取最新的项目并启动你的长运行任务
  3. 任务完成后,VM 使用 ComputeEngine 自行终止 API 或调用调用关闭的函数

您可以在原始请求中指定 output_uri。这会将最终结果写入您的 GCS 存储桶。这样您就不必等待漫长的 运行 操作在您的 VM 上完成。初始请求只需要几秒钟,因此您可以使用 Google Cloud Function。

一小时后操作完成后,您可以通过在输出 GCS 存储桶上设置触发器来处理输出 json 文件。