是否可以在项目或组织级别设置Google Cloud Dataflow使用的区域?

时间:2018-11-23 14:11:37

标签: google-cloud-dataflow

我的雇主最近开始使用Google Cloud Platform进行数据存储/处理/分析。 我们基于欧盟,因此我们希望将Cloud Dataflow作业限制在该区域内。 我收集到可以使用--region和--zone在每个作业/每个作业模板的基础上完成此操作,但想知道(考虑到我们所有的工作都将使用同一区域),是否有办法以更永久的方式进行设置在更广泛的层面(项目或组织)? 谢谢 斯蒂芬

更新:

尽管有另一种解决方法(我将对此作出回应),但追求这一点似乎似乎Adla的答案是正确的。除此之外,谷歌现在有一个公开问题,可以在https://issuetracker.google.com/issues/113150550

找到/关注

如果有其他问题,我可以提供更多有关不起作用的信息:

Google支持小组建议根据How to change the region/zone where dataflow job of google dataprep is running更改与dataprep相关的文件夹的存储位置-不幸的是,这对我不起作用,尽管一些回答该问题的人认为它对他们有用。

我工作场所的某人建议在此处限制非欧盟地区的数据流配额:https://console.cloud.google.com/iam-admin/quotas将其分配给使用适当的区域,但是经过测试,Dataprep仍然倾向于使用美国。

2 个答案:

答案 0 :(得分:0)

Cloud Dataflow使用us-central1作为每个作业的默认区域,如果所需的区域端点与默认区域不同,则需要在每个启动的Cloud Dataflow命令作业中指定该区域才能在其中运行。该区域将自动分配给该区域内最佳区域的工作人员,但您也可以使用--zone进行指定。

目前,无法根据项目或组织设置强制使用Cloud Dataflow使用的区域或区域。

我建议您请求一个新的Google Cloud Platform feature。确保说明您的用例以及此功能对您有何用处。

作为一种解决方法,要限制在Dataflow上为特定区域和区域创建作业,可以编写脚本或应用程序以仅使用所需的特定区域和区域创建作业。如果您还希望限制仅使用脚本来完成作业的创建,则可以删除用户的作业creation permissions,仅将此权限授予该脚本将使用的服务帐户

答案 1 :(得分:0)

Google提供给我的解决方案,基本上需要使用Dataprep作为Dataflow作业生成器,而不是本身使用的工具

  1. 在Dataprep中创建所需的流,但是如果无法将数据发送到区域外,请创建一个版本(样本或完整版本),对敏感数据进行混淆或清空并使用该版本。就我而言,将包含用户ID的字段设置为单个假值就足够了。
  2. 运行流程
  3. 作业执行一次后,在Dataprep webUI中的“作业”下,使用所需作业最右边的三个点,单击“导出结果”。
  4. 显示的弹出窗口将具有指向包含模板的GCS存储桶的路径。复制完整路径。
  5. 在GCS的上述路径中找到元数据文件
  6. 更改文件中列出的输入以使用“真实”数据而不是混淆版本
  7. 在“数据流”控制台页面的使用自定义模板创建作业的菜单中,将从2复制的路径表示为“模板GCS路径”。
  8. 从此菜单中,您可以选择要在其中运行作业的区域。

这并不简单,但是可以做到。我正在使用这样的过程,在没有自己的调度程序的Dataflow情况下,设置对REST API的调用以触发作业。