【问题标题】:Using Terraform, creating Glue job with data source and data Target as Amazon S3使用 Terraform,创建具有数据源和数据目标的 Glue 作业作为 Amazon S3
【发布时间】:2020-08-23 21:24:43
【问题描述】:
我是 AWS 和 Terraform 的新手。我必须使用 Terraform(HCL) 创建一个 Glue 作业,当我看到 Terraform 文档时,它有这个脚本使用资源 aws_glue_job 启动 Glue 作业,但是没有办法指定这是我的数据源,这是数据转换后它需要去(目标)的地方。在我的场景中,我有一个 Glue 表,它是使用 Amazon S3 JSON 文件创建的,它应该是数据源,目标也必须是 S3 存储桶,但现在数据文件将从 JSON 转换为 Parquet。在使用 Terraform 创建 Glue 作业时,我没有找到指定此源和目标的方法。非常感谢您的帮助。提前致谢。
【问题讨论】:
标签:
amazon-web-services
amazon-s3
cloud
terraform
terraform-provider-aws
【解决方案1】:
更新:我通过控制台创建作业来生成脚本,并在通过 Terraform 创建资源时使用它,脚本本身现在有助于创建源和目标。
【解决方案2】:
您必须创建 s3 存储桶,您将在其中保留脚本(python、pyspark)等以及您的转换逻辑以及 s3 中的另一个存储桶,您将在其中保留输出并可以在脚本路径中提供脚本位置,同时创建胶水作业。
下面是用于创建粘合作业的 Terrafrom 代码
resource "aws_glue_job" "your job name"
{
name = "your job name"
role_arn = "${aws_iam_role.yourole.arn}"
max_retries = 0
timeout = 60
number_of_workers = 5
worker_type = "Standard"
execution_property {
max_concurrent_runs = 10
}
command {
script_location = "s3://${var.scriptbucketname}/script/scriptname.py"
python_version = "3"
}