更新AWS Glue作业默认参数出现Command should not be null报错如何解决
AWS Glue UpdateJob 报错Command should not be null解决方案
报错根因:AWS Glue的
UpdateJob接口采用全量覆盖而非增量更新机制,仅提交DefaultArguments字段时,原有作业的Command、Role等必填配置会被清空,因此触发InvalidInputException: Command should not be null报错。
方案1:导出全量配置后修改更新(推荐,不易出错)
- 第一步:导出当前作业的完整配置到本地文件
aws glue get-job --job-name myjobname > job-config.json
- 第二步:编辑
job-config.json文件- 删除外层的
Job字段,仅保留Job节点下的所有配置内容 - 找到
DefaultArguments配置块,添加自定义参数(Glue作业内通过getResolvedOptions读取的参数需要加--前缀) - 保留所有原有配置项,不要删除
Command、Role、ExecutionProperty等必填字段
- 删除外层的
- 第三步:使用修改后的配置执行更新操作
aws glue update-job --job-name myjobname --job-update file://job-config.json
方案2:直接构造全量更新参数
如果不想导出文件修改,可以在更新命令中补全所有原有必填配置,示例如下(需替换为你的作业实际配置):
aws glue update-job --job-name myjobname --job-update '{ "Role": "arn:aws:iam::你的账号ID:role/你的Glue执行角色名", "Command": { "Name": "glueetl", "ScriptLocation": "s3://你的脚本存储桶/脚本路径.py", "PythonVersion": "3" }, "ExecutionProperty": { "MaxConcurrentRuns": 1 }, "DefaultArguments" : { "--MONTH" : "202106", "--job-language": "python", "--TempDir": "s3://你的临时存储桶路径/" } }'
内容的提问来源于stack exchange,提问作者Lucas Mignone
相关产品推荐
相关产品推荐

