【发布时间】:2018-06-08 16:48:44
【问题描述】:
我使用 apache beam Python SDK 创建了一个命令行程序来在 Google Cloud 上启动 Dataflow 作业。然后在使用它时,我搞砸了其中一个选项。我把它搞砸了像这样--otiopn value,而不是像这样--option laevu。当指定无效选项时,我希望程序死掉或至少警告用户。相反,我的程序使用 --option 的默认值启动了一个 Dataflow 作业,直到完成我才注意到。
如何使用 apache beam 来验证我的命令行参数并避免此类情况?
【问题讨论】:
-
这真的不是 Apache Beam 问题。对于您的代码来说,这更像是一个参数/参数处理问题。如果您愿意,可以使用 python 的
argparse模块并为其创建检查。你可以找到很多关于如何做到这一点的教程。但为了让您开始,这里是link -
我已经查看了relevant code 一些。 Apache Beam 已经使用
argparse来解析命令行。为了允许用户提供命令行参数而不将它们包含在PipelineOptions对象中,他们会忽略所有意外选项,我想假设您将自己处理这些选项。我一直在寻找一个关闭它的选项,但看起来没有办法。 -
遗憾的是,据我所知,目前还没有办法做到这一点。抱歉,我无法提供有用的方法来解决您的问题。但是您可以做的事情是:记录系统中发生的所有活动和进程并测试通过的参数。两者对于安全和企业级编码以及您绝对应该发展的技能都至关重要。
标签: python google-cloud-dataflow apache-beam