当前位置: 首页 > 知识库问答 >
问题:

数据流作业成功后如何执行云功能?

常子濯
2023-03-14

我只想在数据流作业执行成功完成时触发云函数。

如果数据流作业失败,不应触发云函数。

我正在运行一个数据流作业,使用数据流模板(从jdbc到BigQuery)从数据流UI。

作业执行后,没有触发任何云函数或其他功能的选项。另外,我不能在模板代码中进行更改。触发云功能的方法是什么?

共有3个答案

蒋哲
2023-03-14

您可能会发现此功能请求在数据流完成时触发云函数很有用。

可以通过命令行确定数据流作业是否失败或成功。您可以列出作业并检查其当前状态,例如,要检查单个作业,您可以运行:

gcloud beta dataflow jobs describe <JOB_ID>

JDBC到BigQuery模板的源代码可以在GitHub上找到。如果需要进行任何特定更改,您始终可以创建自定义模板。

季阳朔
2023-03-14

我以前也做过类似的事情。

https://beam.apache.org/releases/javadoc/2.5.0/org/apache/beam/sdk/PipelineResult.html

PipelineResult result = pipeline.run();
State s = result.waitUntilFinish();
if (s.compareTo(State.DONE) == 0)
    return callCloudFunction();

然后可以将云函数设置为由超文本传输协议请求触发。https://cloud.google.com/functions/docs/calling/http

金子轩
2023-03-14

目前还没有为此构建它的功能,但我可以提出一个解决方案。

  • 转到Cloud Logging并转到高级筛选器(或新UI)
  • 输入此过滤器
resource.type="dataflow_step"
textPayload="Worker pool stopped."
  • 然后创建一个接收器(操作)-

像这样,数据流作业的每一端,都会有一条新消息发布到PubSub,你的云函数将会被触发。

 类似资料:
  • 我的狗看起来像这样 我的DAG正在执行一个jar文件。jar文件包含运行数据流作业的代码,该作业将数据从GCS写入BQ。jar本身执行成功。 当我尝试执行airflow作业时,我看到以下错误 我做了更多的挖掘,我可以看到气流 正如您可以看到jobs之后的最后一个参数是asia east,因此我觉得airflow job正在尝试使用我在默认参数中提供的区域来搜索数据流job的状态。不确定这是否是正在

  • 问题内容: 我的具体问题是,我需要执行(可能)大量的Javascript函数来准备类似批处理文件的内容(每个函数调用都会向同一批处理文件中添加一些信息),然后在所有这些调用完成之后,执行发送批处理文件的最终功能(例如,将其作为HTML响应发送)。我正在为此寻找一种通用的Javascript编程模式。 概括问题:给定Javascript函数funcA(),funcB()和funcC(),我将找出排序

  • 问题内容: 我有一个詹金斯 综合项目 。 在第一阶段 ,我启动数据库并构建核心部分。 用于启动Mongodb的示例Shell命令: 在第二阶段 ,我有各种各样的工作来建立一些客户。 在完成第一阶段的工作之后,启动了服务器并构建了核心部分。我看到日志- 这将停止所有数据库,并且第二阶段作业的构建将失败。 如何告诉詹金斯下班后不要杀死进程? 问题答案: 根据@jayan共享的文档, 您可以通过将Jav

  • 问题内容: 我正在处理从SQL Server提取数据并将其插入Excel文件中的SSIS包…在 数据流任务中, 我已经使用 OLE Db源 和 Excel目标 。 配置OLE Db源之后,我可以 预览 结果行,甚至可以成功执行数据流任务,而不会出现任何错误..但不能插入任何行。 问题答案: 幸运的是我找到了答案,我做了两件事。 我刚刚 删除了 尝试了许多不同设置和参数 的旧数据流任务 ,然后重新构

  • 问题内容: 用户成功登录后,我需要执行一组操作。这包括从数据库加载数据并将其存储在会话中。 实现此目的的最佳方法是什么? 问题答案: 您可以向事件添加侦听器。 像这样附加您的听众。在此示例中,我还将安全性上下文和会话作为依赖项传递。 注意: 从Symfony 2.6开始不推荐使用SecurityContext。请参考 http://symfony.com/blog/new-in-symfony-2

  • 我在src/test/resources/feature/中有以下功能文件(单独的功能文件),我想并行运行它们。比如:一个功能文件必须在chrome中执行,另一个必须在另一个chrome实例中执行,如@Tags name所述。 我正在使用Java1.2。5版本,AbstractTestNGCucumberTests作为runner。我可以运行一个功能文件,但当我尝试使用cucumber jvm并行

  • 我试图从一个数据流作业中运行两个分离的管道,类似于下面的问题: 一个数据流作业中的并行管道 如果我们使用单个p.run()使用单个数据流作业运行两个分离的管道,如下所示: 我认为它将在一个数据流作业中启动两个独立的管道,但它会创建两个包吗?它会在两个不同的工人上运行吗?

  • 我知道我可以用云函数和PubSub通知来完成每个写入的文件,但我更喜欢只在整个文件夹完成时这样做一次。 谢了!