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

How to make the environment variables reach Dataflow workers as environment variables in python sdk

我用 python sdk 编写自定义接收器。我尝试将数据存储到 AWS S3。要连接 S3,一些凭据、密钥是必需的,但出于安全原因,最好在代码中设置。我想让环境变量作为环境变量到达数据流工作者。 我该怎么做?

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

但是,对于像凭据这样敏感的东西,在命令行参数中传递敏感信息可能不是一个好主意。我会推荐一种更安全的方法:将凭据放入 GCS 上的文件中,并将文件的 name 作为 PipelineOption 传递。然后在需要凭据时使用 GcsIO.

以编程方式从 GCS 读取文件