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

如何通过Terraform同时创建关联对应DynamoDB表的Glue爬虫

解决Terraform中Glue爬虫与DynamoDB表一一关联的问题

当前代码中所有爬虫共用同一个var.table_name值,导致无法实现爬虫与表的一一对应。只需将表名信息整合到爬虫配置列表中,让循环时每个爬虫能获取专属的表名即可解决问题。

步骤1:修改变量定义

更新variables.tf,把table_name字段加入crawlerList的对象结构,同时移除单独的table_name变量:

variable "crawlerList" {
  type = map(object({
    database_name = string
    crawler_name  = string
    role          = string
    table_name    = string # 新增表名字段,用于绑定专属DynamoDB表
  }))
}

步骤2:更新变量配置

在var.tfvars中,为每个爬虫条目添加对应的DynamoDB表名:

crawlerList = {
  first = ({
    database_name = "dm_web"
    crawler_name  = "example_one"
    role          = "xxxx"
    table_name    = "ref_master_files_1" # 爬虫1对应的表名
  }),
  second = ({
    database_name = "dm_web"
    crawler_name  = "example_two"
    role          = "xxxx"
    table_name    = "ref_master_files_2" # 爬虫2对应的表名
  }),
  third = ({
    database_name = "dm_web"
    crawler_name  = "example_third"
    role          = "xxxx"
    table_name    = "ref_master_files_3" # 爬虫3对应的表名
  }),
}

步骤3:调整爬虫资源代码

修改main.tf中的dynamodb_target部分,引用当前循环条目中的table_name字段:

resource "aws_glue_crawler" "example" {
  for_each = var.crawlerList

  database_name = each.value.database_name
  name          = each.value.crawler_name
  role          = each.value.role
  
  dynamodb_target {
    path = each.value.table_name # 绑定当前爬虫专属的DynamoDB表
  }
}

完成以上修改后,每个Glue爬虫会关联配置中指定的对应DynamoDB表,实现一一匹配的需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 15:15:47