通过AWS CloudFormation部署Glue Job报错:language字段渲染失败
问题原因及解决方案
错误提示的核心原因是:使用pythonshell类型的Glue Job时,CloudFormation模板要求在Command配置中显式指定Language参数,而手动创建Job时AWS控制台会自动填充该参数,因此不会触发报错。
修正后的模板片段
在GluePythonScriptJob的Command节点下添加Language字段,值设为python3(可根据脚本实际依赖的Python版本调整):
"GluePythonScriptJob": { "Type": "AWS::Glue::Job", "DependsOn": "GluePythonScriptRole", "Properties": { "Name": { "Fn::Sub": "add-partition-projection-to-all-tables-${UniqueID}" }, "Role": { "Fn::GetAtt": [ "GluePythonScriptRole", "Arn" ] }, "ExecutionProperty": { "MaxConcurrentRuns": 1 }, "Command": { "Name": "pythonshell", "ScriptLocation": "s3://xyz/add-partition-projection-to-all-tables.py", "Language": "python3" // 新增必填的Language参数 }, "DefaultArguments": { "--databasename": { "Fn::Sub": "dbparquet${UniqueID}" } }, "MaxRetries": 0, "Timeout": 2880 } }
补充说明
- 若脚本基于Python2,可将
Language设为python,但AWS已逐步停止对Python2的支持,建议优先使用python3。 - 该参数是CloudFormation定义
pythonshell类型Job的必填项,手动创建流程中控制台会自动填充默认值,因此不会出现同类错误。
内容的提问来源于stack exchange,提问作者mfcss
相关产品推荐
相关产品推荐

