gpt4 book ai didi

google-cloud-platform - 导入/导出 DataFusion 管道

转载 作者:行者123 更新时间:2023-12-04 06:01:51 26 4
gpt4 key购买 nike

有谁知道是否可以以编程方式导入/导出 DataFlow 管道(已部署或处于草稿状态)?

想法是编写一个脚本来删除和创建 DataFusion 实例,以避免在不使用时计费。通过 gloud 命令行,可以配置 DataFusion 集群并销毁它,但是自动导出和导入我的所有管道也会很有趣。

不幸的是,官方文档对我没有帮助...

谢谢!

最佳答案

您可以使用 REST API 来执行此操作。但是,您可能需要一些脚本在给定实例 url 的情况下自动执行此操作。您应该能够从应用程序列表 API ( reference here) 获取管道配置。在您的情况下,您首先需要获取管道列表( reference here ),然后遍历所有管道并获取单个管道的详细信息,该管道将具有名为 configuration 的属性,该属性将具有配置管道 json。您仍然需要创建一个新的 JSON,其中包含名称、描述、工件信息以及配置属性以及您从后端收到的配置 json。

示例如下所示,

  1. 在您即将销毁的集群中,GET API 以使用 artifactName=cdap-data-pipeline,cdap-data-streams 作为查询参数获取应用程序列表
/namespaces/default/apps?artifactName=cdap-data-pipeline,cdap-data-streams?artifactName=cdap-data-pipeline,cdap-data-streams
  1. 解析响应并遍历各个应用并获取应用详细信息
namespaces/default/apps/<app-name>

对于每个应用程序,在响应中获取 configuration 属性,并将最终的 JSON 格式形成类似的内容,


{
"name": "Pipeline_1",
"description": "Pipeline to do taskX",
"artifact": {
"name": "cdap-data-pipeline",
"version": "6.1.0-SNAPSHOT",
"scope": "USER"
},
"config": JSON.parse(<configuration-from-app-detailed-api>)
}

  1. 然后在您即将创建的新集群中,只需使用您在上一步中获得的 json 部署管道即可。

需要注意的一件事是,如果您在旧集群中为管道设置了计划或触发器,则不会在新集群中创建它们。如果您只是部署和运行管道,则管道的其余部分应该可以正常工作。

希望这对您有所帮助。

[更新] 11/20

刚刚意识到有关于访问数据融合的 REST API 的文档 here然而,如何进行 REST api 调用并不完全需要。这是有关如何操作的示例,

curl -H "Authorization: Bearer $(gcloud auth print-access-token)" -w"\n" -X GET <instance-url>/namespaces/default/apps?artifactName=cdap-data-pipeline,cdap-data-streams?artifactName=cdap-data-pipeline,cdap-data-streams

这里我们使用 gcloud 获取特定实例的访问 token 。这样做的先决条件是使用 gcloud SDK 登录。一旦身份验证成功,这应该会成功返回特定实例中的应用程序列表。

关于google-cloud-platform - 导入/导出 DataFusion 管道,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58839608/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com