如何使环境变量在python sdk中作为环境变量到达Dataflow worker

时间:2016-10-27 13:15:39

标签: google-cloud-platform google-cloud-dataflow apache-beam

我用python sdk编写自定义接收器。我尝试将数据存储到AWS S3。要连接S3,需要一些凭证,密钥,但出于安全原因在代码中设置并不好。我想将环境变量作为环境变量到达Dataflow worker。 我该怎么办?

1 个答案:

答案 0 :(得分:1)

通常,为了向您不想硬编码的工作人员传输信息,您应该使用PipelineOptions - 请参阅Creating Custom Options。然后,在构建管道时,只需从PipelineOptions对象中提取参数并将其放入变换中(例如,放入DoFn或接收器中)。

但是,对于像凭据一样敏感的内容,在命令行参数中传递敏感信息可能不是一个好主意。我建议采用更安全的方法:将凭证放入GCS上的文件中,并将文件的名称作为PipelineOption传递。然后,只要您需要凭据,就可以使用GcsIO以编程方式从GCS读取文件。