我用python sdk编写自定义接收器。我尝试将数据存储到AWS S3。要连接S3,需要一些凭证,密钥,但出于安全原因在代码中设置并不好。我想将环境变量作为环境变量到达Dataflow worker。 我该怎么办?
答案 0 :(得分:1)
通常,为了向您不想硬编码的工作人员传输信息,您应该使用PipelineOptions
- 请参阅Creating Custom Options。然后,在构建管道时,只需从PipelineOptions
对象中提取参数并将其放入变换中(例如,放入DoFn
或接收器中)。
但是,对于像凭据一样敏感的内容,在命令行参数中传递敏感信息可能不是一个好主意。我建议采用更安全的方法:将凭证放入GCS上的文件中,并将文件的名称作为PipelineOption
传递。然后,只要您需要凭据,就可以使用GcsIO以编程方式从GCS读取文件。