【发布时间】:2019-07-12 04:00:19
【问题描述】:
我正在使用 Terraform 在 AWS 中构建一些基础设施。我创建了几个 S3 存储桶,并希望 Glue 爬虫每小时爬一次这些存储桶。我的 Terraform Glue 目录数据库、角色和策略都构建良好,但是当我尝试通过将四个 S3 路径添加到爬虫的 s3_target{} 部分来创建爬虫资源时,我遇到了失败:
resource "aws_glue_crawler" "datalake_crawler" {
database_name = "${var.glue_db_name}"
name = "${var.crawler_name}"
role = "${aws_iam_role.glue.id}"
s3_target {
# count = "${length(var.data_source_path)}"
path = "${var.data_source_path}"#"${formatlist("%s", var.data_source_path)}"
}
}
这会导致错误:
Error: aws_glue_crawler.datalake_crawler: s3_target.0.path must be a single value, not a list
我尝试在s3_target 中添加count 语句,但这失败了。我也试过添加
"${formatlist("%s", var.data_source_path)}"
在 path 参数中,但这也失败了。
我可以使用 Terraform 向 Glue Crawler 添加多个 s3 路径吗?我可以通过 AWS 控制台实现这一点,但这需要使用基础设施即代码来完成。
【问题讨论】:
-
我没有使用过 Glue,但从快速查看文档看来,您可以为每个路径重复
s3_target块。现在在我的手机上,因此无法对其进行测试以使其成为正确答案。 -
将三个
s3_target块添加到胶水爬虫资源允许我将所有四个存储桶添加到爬虫。我已经查看了胶水文档,但没有发现任何地方让我相信我可以复制s3_target块。你能帮我看看丢失了什么吗?另外,我可以根据变量以编程方式添加这些块吗?当您回到盒子时,请随意添加作为答案;很高兴接受。
标签: amazon-web-services amazon-s3 terraform aws-glue terraform-provider-aws