Glue Job无法获取Workflow传递的client参数问题排查
问题排查与解决
1. 先确认参数格式是否符合要求
Glue的getResolvedOptions方法只认带--前缀的参数,比如--client value12这种格式。如果Workflow传的是client=value12这种不带--的写法,虽然sys.argv能打印出来,但getResolvedOptions会识别不到,直接判定参数缺失。
你可以先打印完整的sys.argv确认格式:
import sys print(sys.argv)
如果输出是类似['your_script.py', 'client=value12'],那就是格式不对,得改成['your_script.py', '--client', 'value12']这种规范格式。
2. 修正Workflow传参方式
在Glue Workflow的Job动作配置里,参数要按**--参数名 参数值**的键值对形式填写,比如直接填--client value12,而不是client=value12。这样Glue Job才能正确识别参数,getResolvedOptions也能正常解析。
3. 临时调试方案(可选)
如果暂时没法改Workflow配置,也可以手动解析sys.argv拿参数:
import sys args = {} for arg in sys.argv[1:]: if '=' in arg: key, val = arg.split('=', 1) args[key] = val client = args.get('client') print(client)
但还是建议按Glue规范传参,避免后续其他依赖getResolvedOptions的逻辑出问题。
内容的提问来源于stack exchange,提问作者Md Parvez Alam
相关产品推荐
相关产品推荐

