You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Terraform配置AWS Glue Crawler:如何让每个爬虫仅爬对应路径?

问题修正方案

你的问题核心是每个Glue爬虫错误引用了全局所有路径集合,未绑定到各自配置对应的paths。以下是修正后的代码及关键调整说明:

修正后的glue/main.tf

resource "aws_glue_crawler" "example" {
  for_each      = var.config
  database_name = each.key
  name          = each.key
  role          = var.my_role

  dynamic "s3_target" {
    # 遍历当前爬虫对应的paths列表,而非全局所有路径
    for_each = toset(each.value.paths)
    content {
      path = s3_target.value
    }
  }
}

关键调整点

  • 移除多余的local.elements:该变量将所有配置路径扁平化合并,导致每个爬虫加载全部路径,完全无需保留。
  • 调整dynamic "s3_target"的for_each:直接使用each.value.paths(转换为toset集合类型,符合Terraform对for_each的要求),确保每个爬虫仅遍历自身配置的路径。
  • 修复语法错误:
    • 补全dynamic "s3_target"的引号与闭合大括号
    • 修正name = each_key为name = each.key
    • 修正path = s3_target.value.topic为path = s3_target.value(遍历的是paths中的字符串元素,不存在topic字段)

验证效果

修正后:

  • content1爬虫生成4个s3_target,对应路径a、b、c、d
  • content2爬虫生成1个s3_target,对应路径e

内容的提问来源于stack exchange,提问作者Omega

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.25 11:15:37