一个可能的解决方法是使用AWS命令行接口(AWS CLI)来编辑AWS Glue驱动程序脚本。以下是一个用于将Python文件上传到S3然后将其作为Glue脚本运行的示例:
aws s3 cp myfile.py s3://mybucket/scripts/
aws glue create-job \
--name myjob \
--role mygluerole \
--command '{"Name": "pythonshell", "ScriptLocation": "s3://mybucket/scripts/myfile.py"}' \
--default-arguments '{"--job-language": "python"}'
您也可以使用AWS SDK for Python(boto3)来执行相同的操作。以下是一个将Python文件上传到S3然后将其作为Glue脚本运行的示例:
import boto3
s3 = boto3.client('s3')
s3.upload_file('myfile.py', 'mybucket', 'scripts/myfile.py')
glue = boto3.client('glue')
response = glue.create_job(
Name='myjob',
Role='mygluerole',
Command={
'Name': 'pythonshell',
'ScriptLocation': 's3://mybucket/scripts/myfile.py'
},
DefaultArguments={
'--job-language': 'python'
}
)
使用AWS CLI或AWS SDK for Python来编辑AWS Glue驱动程序脚本的另一个好处是,它们始终提供了相同的编辑功能并避免了AWS控制台编辑器的奇怪行为。